85
votes
Accepted
Extending OEIS: Counting Diamond Tilings
Algebra, graph theory, Möbius inversion, research, and Java
The symmetry group of the hexagon is the dihedral group of order 12, and is generated by a 60 degree rotation and a mirror flip across a ...
51
votes
Absolute Sums of Sidi Polynomial Coefficients
Python 2, 43 bytes
f=lambda n,k=1:k/n or n*f(n,k+1)+k*f(n-1,k)
Try it online!
A different approach
Ever since I posted this challenge, I tried to come up with a ...
34
votes
Print all colorings of a 3x3 grid
Mathematica, 25 bytes
Image/@{0,1}~Tuples~{3,3}
Gives an array with all the grids as images, which is also directly displayed on screen:
(Cropped so as not to ...
34
votes
31
votes
Anaglot Polygrams
34 Languages, 19 bytes, Score: 38,832,018,459,912,437,760,000
Here is a quick answer I threw together to show that it is possible to get an answer scoring better than 1.
...
28
votes
Every word from babab to zyzyz
Mathematica, 72 65 61 bytes
Print@@@Tuples@{a=##/(b=#5#9#15#21#25#)&@@Alphabet[],b,a,b,a}
For testing, I recommend replacing ...
27
votes
Catalan Numbers
C, 78 52 39 34 33 bytes
Even more C magic (thanks xsot):
c(n){return!n?:(4+6./~n)*c(n-1);}
?: is a GNU extension.
This time ...
26
votes
Concentric rings on a snub square tiling
Ruby, 26 bytes
->n{~-n*12-496/4**n%4+1/n}
Try it online!
Revised version adding 1/n and subtracting ...
25
votes
Bernoulli Numbers
Mathematica, 40 28 23 22 bytes
Using the famous formula n*ζ(1−n)=−Bn, where ζ is the Riemann Zeta function.
If[#>0,-Zeta[1-#]#,1]&
The same length:
<...
25
votes
25
votes
The square root of the square root of the square root of the…
APL (Dyalog Unicode), 39 bytes
+/⊢{∨/⍺⍵<⍵0:0⋄⍺=0:1⋄+/∊∇¨/⍺(⍵*2)-⊂⍳⍺}¨⍳
Try it online!
A tacit function containing an inner dfn to use recursion. Does not use ...
24
votes
23
votes
Compute the multinomial coefficient
Jelly, 7 6 bytes
;_/!:/
Look ma, no Unicode! This program takes a single list as input, with n at its first index.
Try it online! or verify all test cases at ...
23
votes
Brute-force the switchboard
Haskell, 25 24 23 17 bytes
mapM$min"^v".pure
Try it online!
-1 byte thanks to @H.PWiz
-1 byte thanks to @nimi
Returns a list of strings. The TIO has 2 extra ...
21
votes
Don't repeat yourself in Rock-Paper-Scissors
Ruby, 39 bytes
->n{(?P*n..?S*n).grep_v /[^RPS]|(.+)\1/}
This hilariously inefficient function generates all strings of length N that lie alphabetically ...
20
votes
Accepted
The Combinatorics of Transistor
CJam (56 bytes)
q~4@:Nm*:$_&{:+1$\-N),&},f{1$1$:+-\0-:(_e`0f=+++:m!:/}:+
Online demo
This is an optimised version of the reference implementation I ...
20
votes
Count sums of two squares
Python (59 57 56 bytes)
lambda n:0**n+sum((-(n%(x-~x)<1))**x*4for x in range(n))
Online demo
As with my CJam answer, this uses Möbius inversion and runs in ...
20
votes
Partitioning the grid into triangles
Haskell, 60 55 54 52 bytes
After a drawing and programming a lot of examples, it occured to me that this is the same as the problem of the rooks:
On a \$(n+1) \times (n+1)\$ chessboard, how many ...
19
votes
Stuffing primes in a box
Smalltalk, 1098 primes
First off, nice hard question - as evidenced by the lack of non-trivial responses thus far.
I had a solution cooking at work, but had to wait for the long weekend to have time ...
19
votes
Deranged !Combinatorics: Compute the Subfactorial
Funciton, 336 bytes
Byte count assumes UTF-16 encoding with BOM.
...
19
votes
Counting universal n-ary logic gates
Python 3.8 (pre-release), 287 282 242 bytes
-5 bytes thanks to @Dialfrost
...
18
votes
Combinatorial products of unique primes
Pure Bash, 32 bytes
eval echo \$[{1,${1// /\}*{1,}}]
Reads input list (single space separated) passed as a command-line arg.
Three different shell expansions are ...
18
votes
A penny saved is a penny
Haskell, 37 34 bytes
s#l@(c:d)|s>=c=(s-c)#l+s#d
s#_=0^s
Usage example: 26 # [1,5,10,25] -> ...
17
votes
Code-Golf: Permutations
Python, 52
Input is a set. Output is a list of lists.
f=lambda a:[p+[x]for x in a for p in f(a-{x})]or[[]]
This is shorter than the answer that does all the work ...
17
votes
Accepted
Generate all combinations of given list of elements, sorted
Jelly, 1 byte
ṗ
TryItOnline
Cartesian power built-in atom, as a dyadic link with left argument the items and right argument the count, or as a full program with ...
17
votes
17
votes
Enumerate all pure sets
Python, 43 bytes
f=lambda x:[f(i)for i in range(x)if x>>i&1]
Attempt This Online!
Outputs the \$ n \$th set, starting at \$ 0 \$.
One way of creating a sequence of all pure sets is to encode ...
16
votes
Accepted
16
votes
Count sums of two squares
Python 2, 44 bytes
f=lambda n,x=1:+(x>n)or(n%x<1)-f(n,x+2)/4<<2
This is almost the same as xsot's solution (which is based on Peter Taylor's solution)...
16
votes
Super permutations
Scratch 3.0, 65 blocks / 637 632 bytes
Look at y'all, having fun with your fancy shmancy permutation functions/map tools. Well, not I! No, not I! When using Scratch, one has to do things themselves! ...
Only top scored, non community-wiki answers of a minimum length are eligible
Related Tags
combinatorics × 349code-golf × 289
math × 81
sequence × 67
permutations × 39
fastest-code × 31
number × 26
grid × 25
geometry × 22
code-challenge × 21
number-theory × 19
string × 18
set-partitions × 17
integer-partitions × 15
graph-theory × 14
array × 13
tiling × 13
polyomino × 12
decision-problem × 11
arithmetic × 11
random × 9
counting × 8
game × 7
ascii-art × 6
binary × 6