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??

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.
[download]```

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)!

[download]```

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;"
[download]```

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?