Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > Python > list question... unique values in all possible unique spots

Reply
Thread Tools

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

 
 
ToshiBoy
Guest
Posts: n/a
 
      08-09-2008
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.
 
Reply With Quote
 
 
 
 
George Sakkis
Guest
Posts: n/a
 
      08-09-2008
On Aug 9, 9:05*am, ToshiBoy <(E-Mail Removed)> wrote:

> 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
 
Reply With Quote
 
 
 
 
Mensanator
Guest
Posts: n/a
 
      08-09-2008
On Aug 9, 8:05´┐Żam, ToshiBoy <(E-Mail Removed)> wrote:
> 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
>>> import itertools
>>> for i in itertools.permutations(range(4)): print i


(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

>>> print gmpy.fac(26)

403291461126605635584000000

That's 403 octillion.

Are you sure you want to do this?
 
Reply With Quote
 
Mensanator
Guest
Posts: n/a
 
      08-12-2008
On Aug 11, 3:53*pm, Tobiah <(E-Mail Removed)> wrote:
> On Mon, 11 Aug 2008 13:46:10 -0700, Tobiah wrote:
> > On Sat, 09 Aug 2008 08:07:26 -0700, Mensanator wrote:

>
> >> 403291461126605635584000000

>
> > I think it's only 4 septillion.

>
> I meant to say 403.


Whatever.

Ever tried to iterate 403 septillion times?
 
Reply With Quote
 
bearophileHUGS@lycos.com
Guest
Posts: n/a
 
      08-12-2008
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!

>>> binomial(26, 4)

14950

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

Bye,
bearophile
 
Reply With Quote
 
Mensanator
Guest
Posts: n/a
 
      08-12-2008
On Aug 11, 7:34*pm, (E-Mail Removed) wrote:
> 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!
>
> >>> binomial(26, 4)

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


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

>
> Bye,
> bearophile


 
Reply With Quote
 
ToshiBoy
Guest
Posts: n/a
 
      08-12-2008
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.
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Is there a unique method in python to unique a list? Token Type Python 9 09-09-2012 02:13 PM
list of all possible values David Gibb Python 5 07-16-2009 08:23 PM
map / list of public wifi hot spots in new zeland Daniel NZ Computing 3 04-27-2006 06:01 AM
XML + XSD: Is it possible to get all possible Values for an Element? Markus Java 1 11-22-2005 02:51 PM
JDO Question : Is it possible to get unique values like DISTINCT in SQL? Klixx0r Java 1 12-08-2004 10:34 AM



Advertisments