list question... unique values in all possible unique spots

T

ToshiBoy

I'm wondering how to do this the most elegant way: I found this quiz
in some magazine. I've already solved it on paper, but want to write a
python program to solve it. It comes down to being able to represent
range(1,27) through a number of formulas. How do I write a loop that
will loop through this list, so that: 1. every number only occurs
once, and 2. I get every possibility of order within the list? I guess
it'd be somewhat similar to Sudoku, where you have the numbers from
1-9 in any possible order. Here it's 1-26.
 
G

George Sakkis

I'm wondering how to do this the most elegant way: I found this quiz
in some magazine. I've already solved it on paper, but want to write a
python program to solve it. It comes down to being able to represent
range(1,27) through a number of formulas. How do I write a loop that
will loop through this list, so that: 1. every number only occurs
once, and 2. I get every possibility of order within the list? I guess
it'd be somewhat similar to Sudoku, where you have the numbers from
1-9 in any possible order. Here it's 1-26.

Search for a permutation generator function.

George
 
M

Mensanator

I'm wondering how to do this the most elegant way: I found this quiz
in some magazine. I've already solved it on paper, but want to write a
python program to solve it. It comes down to being able to represent
range(1,27) through a number of formulas. How do I write a loop that
will loop through this list, so that: 1. every number only occurs
once, and 2. I get every possibility of order within the list? I guess
it'd be somewhat similar to Sudoku, where you have the numbers from
1-9 in any possible order. Here it's 1-26.

Python 2.6 has a permutation function:

IDLE 2.6b1
(0, 1, 2, 3)
(0, 1, 3, 2)
(0, 2, 1, 3)
(0, 2, 3, 1)
(0, 3, 1, 2)
(0, 3, 2, 1)
(1, 0, 2, 3)
(1, 0, 3, 2)
(1, 2, 0, 3)
(1, 2, 3, 0)
(1, 3, 0, 2)
(1, 3, 2, 0)
(2, 0, 1, 3)
(2, 0, 3, 1)
(2, 1, 0, 3)
(2, 1, 3, 0)
(2, 3, 0, 1)
(2, 3, 1, 0)
(3, 0, 1, 2)
(3, 0, 2, 1)
(3, 1, 0, 2)
(3, 1, 2, 0)
(3, 2, 0, 1)
(3, 2, 1, 0)

Bur bear in mind that permutations of size n are n!.
So the permutaions of range(1,27) is 26! which is
403291461126605635584000000

That's 403 octillion.

Are you sure you want to do this?
 
B

bearophileHUGS

Mensanator:
Ever tried to iterate 403 septillion times?

The OP is talking about formulas, like:
X + Y * Z = W
Where X, Y, Z, W distinct and in [1, 26], so you have C(26, 4)
combinations that's way less than 26!
14950

So this can be solved with a xcombinations() generator.

Bye,
bearophile
 
M

Mensanator

Mensanator:
Ever tried to iterate 403 septillion times?

The OP is talking about formulas, like:
X + Y * Z = W
Where X, Y, Z, W distinct and in [1, 26], so you have C(26, 4)
combinations that's way less than 26!

14950

So this can be solved with a xcombinations() generator.

How did you surmise it's C(26,4)?
 
T

ToshiBoy

Thank you for all your responses. I've tried the permutations road
(thank you to all those of you who have suggested it) and it takes %*&
%^ long :) As expected. I've solved it a different way, which runs
through the 26 spots by just adding one at a time if available. Still
takes a long time, but not as long as the permutation. That said,the
permutation works great for other projects.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,767
Messages
2,569,572
Members
45,045
Latest member
DRCM

Latest Threads

Top