Beefy Boxes and Bandwidth Generously Provided by pair Networks
We don't bite newbies here... much
 
PerlMonks  

Re: list of four digit lock combinations without repeated digits -- tartaglia

by Discipulus (Abbot)
on Jun 20, 2018 at 21:04 UTC ( #1217069=note: print w/replies, xml ) Need Help??


in reply to list of four digit lock combinations without repeated digits

Hello Lotus1

> anyone else has interesting solutions

Yes! go to mine tartaglia triangle repository, download the program, run it, choose the combinations experiment and feed 10 4 and you'll see coulored solutions in the triangle and the following output:

*** Combinations of 4 items in a group of 10 There are 210 (red tile position 10 - 4) different combinations (whe +n the order does not matter) of 4 items in a group of 10. There are 715 (green tile) different combinations with repetitions o +f 4 items in group of 10.

More informations are provided upon request:

This is called combination (or k-combination) in mathematic, id est no + matter of the order of the elements and no repetition of elements. The formula is the binomial coefiicent one. n! C(n,k) = ---------- k!(n-k)!

PS The following ugly oneliner to print all 5040 permutations

perl -E "say @$_ for grep{$$_[0]!=$$_[1] and $$_[0]!=$$_[2] and $$_[0] +!=$$_[3] and $$_[1]!=$$_[2] and $$_[1]!=$$_[3] and $$_[2]!=$$_[3]} map { [split '',sprintf '%04s' +,$_]} 0..9999;"

PPS cannabalizing the below elegant solution by johngg I got a better solution:

perl -e "print qq($_ ) for grep { ! m{(.).*\1} }map{sprintf '%04s',$_}0..9999"

L*

There are no rules, there are no thumbs..
Reinvent the wheel, then learn The Wheel; may be one day you reinvent one of THE WHEELS.

Replies are listed 'Best First'.
Re^2: list of four digit lock combinations without repeated digits -- tartaglia
by Lotus1 (Priest) on Jun 22, 2018 at 13:48 UTC

    I ran your Tartaglia project and tried some of the experiments. It is a very nice application with nice graphics. I know the triangle as Pascal's triangle and have used it for binomial expansion but I didn't know about (or I've forgotten some of) the other uses. Thanks for sharing this.

    Your Perl code seems to be the same regex approach I used to eliminate duplicate digits. This by itself produces permutations. To get the 210 combinations add the split, sort and store in a hash.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1217069]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (8)
As of 2019-05-27 12:17 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Do you enjoy 3D movies?



    Results (156 votes). Check out past polls.

    Notices?