There are 12,766,882,202,755,783 unique 3D polycubes that can be constructed with 22 cubes.
As a follow-up to my more-detailed previous post, I've now used Stanley Dodds's algorithm to enumerate the next larger size of polycubes — those constructed of 22 cubes!
With their assistance, I was able to refactor my Rust code to allow the work to be divided up into smaller tasks more efficiently, and more importantly, to be divided up into many (millions!) more small tasks. This, along with a bit more work to allow the work to be deterministically halted and resumed, allowed me to run this computation on a larger-yet-cheaper 64-vCPU spot instance in the EC2 cloud at AWS.
My previous n=21
code would have likely required 7-8 times the expense and running time when run for n=22
. This is mostly because it could only reasonably be run on an on-demand 16- or 32-vCPU EC2 instance. This would have been more than 70 days of computation. With the spot instance savings and dramatic speed improvement from being more parallelizable, this n=22
computation actually ended up taking roughly the same 10-day duration as the n=21
computation while being much cheaper to run.
This project was a lot of fun, but I think it ends here for now. n=23
will have to wait for another day. If you're interested in this subject, check these links out:
My rust port of Stanley Dodds's algorithm is available on GitHub.
The OEIS sequence A000162 now contains the new n=21
and n=22
values.
The OEIS sequence A001931 now contains a related count for "fixed" polycubes, calculated en route to the A000162 values, for the new n=21
and n=22
values.
Finally, I would like to again thank Stanley Dodds for their help and for making their code public for the rest of us to play with.