alteryx Community

# Weekly Challenges

Solve the challenge, share your solution and summit the ranks of our Community!

Also available in | Français | Português | Español | 日本語
###### IDEAS WANTED

Want to get involved? We're always looking for ideas and content for Weekly Challenges.

## Challenge #154: Permute the Data

Alteryx Alumni (Retired)

Last week's solution can be found here.

This week's solution is working to permute some data!  This challenge is derived from an question asked by @iellingsonbg, and was solved by the illustrious @MarqueeCrew@MarqueeCrew then messaged us letting us know a great challenge was available that we should tackle! If you ever have a great challenge of your own or see another problem around the Community worth tackling, let us know!

As for the challenge itself, we are presented the options (tools). What we would like to do is determine all the combinations these tools can exist in an 'on/off' state. For three options we can see the following combinations. Note that the end result data is not formatted this way, but simple formatted here for ease of understanding.

 Browse Input Output Off Off Off Off Off On Off On Off Off On On On Off Off On Off On On On Off On On On

If you want to take a more difficult route, try to setup your workflow where it would be dynamic to handle more than three tool options and more toggle options than on/off!

20 - Arcturus

Illustrious is very kind of you.  I'll defer posting a solution until the real challenge guru's come up with some interesting alternatives.

Cheers,

Mark

Alteryx ACE & Top Community Contributor

Chaos reigns within. Repent, reflect and restart. Order shall return.
17 - Castor

I had a little bit of a headstart as I tried to solve @iellingsonbg's original problem. Thanks @MarqueeCrew for putting this as a weekly challenge!

Spoiler
I've successfully overcomplicated another weekly challenge. I turned this into a pure math problem. For the original problem, I set this up where 0 = Off and 1 = On.
 Browse Input Output 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1

So there's 8 rows of data since 2 toggles (ON/OFF) to the power of 3 items (Browse/Input/Output)  = 8. Then I realized that if I combined all the columns into 1 column, this is basically counting up in binary (base 2) with extra zeros padded to the left. Row 1 = 000(binary)= 0(decimal), Row 2 = 001(binary)=1(decimal), Row 3 =010(binary)=2(decimal). So now my table looks like this:
 Browse Input Output Binary Decimal 0 0 0 000 0 0 0 1 001 1 0 1 0 010 2 0 1 1 011 3 1 0 0 100 4 1 0 1 101 5 1 1 0 110 6 1 1 1 111 7

So to solve the problem, I generated my 8 rows of data with a simple recordID. Then I converted the recordID from Decimal to Binary. I created an iterative macro to do the conversion.

Note that my macro will scale to any number of tools and toggles. You basically just need to convert the recordID from Decimal (base 10) to base x (where x= number of toggles) which is what it's doing.

20 - Arcturus

How horizontal of you!  Have you switched axis?  I haven't noticed before.

Cheers,

Mark

Alteryx ACE & Top Community Contributor

Chaos reigns within. Repent, reflect and restart. Order shall return.
17 - Castor

@MarqueeCrew I've finally given in on the weekly challenges. In my younger days I would change the weekly challenge to vertical before starting. I get along with @JoeM on most things but canvas layout direction is one we don't agree on. #Vertical.

20 - Arcturus

@patrick_digan next I'll be seeing you sitting next to me on an airplane!

Alteryx ACE & Top Community Contributor

Chaos reigns within. Repent, reflect and restart. Order shall return.
Alteryx Alumni (Retired)

@patrick_digan

N

o

t

e

v

e

r

y

t

h

i

n

g

h

a

s

t

o

b

e

v

e

r

t

i

c

a

l

20 - Arcturus
```                          b i k e
r            j
u                 u
y o                        m
t                                  p
s                                       s.  R i g
u                                                      h t
J                                                              ?```
Alteryx ACE & Top Community Contributor

Chaos reigns within. Repent, reflect and restart. Order shall return.
14 - Magnetar

Nice one, did a brute force way, but trying to find out a macro solution :)

19 - Altair

High School Math to the Rescue!

Thanks for the challenge @MarqueeCrew

Spoiler
Scalable solution that handles varying number of tools! Not varying toggle options though!  That will have to wait for a generic base-N macro.

Edit:  @patrick_digan IntToBin() does most of the heavy lifting.  But then again you have the Base-N macro that I still have to work on! DOH!

Dan