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 (Vicar) 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.