Another day, another solution
Today, Dec. 25, the puzzle space looks like this:
In[]:=
FixGraphicsScale[]@ResourceFunction["PolyominoPlot"][Emptiness[]]
Out[]=
The default method takes less than a second to solve today’s puzzle
In[]:=
pentominoes=PolyominoArrays[5];
In[]:=
Length@pentominoes
Out[]=
12
In[]:=
forms=Append[pentominoes[[{2,3,4,5,6,7,11}]],ConstantArray[1,{2,3}]];
In[]:=
FixGraphicsScale[]@ResourceFunction["PolyominoPlot"][#]&/@forms
Out[]=
,
,
,
,
,
,
,
In[]:=
calendarProblem=PolyominoCoverEncoding[Emptiness[],forms,"PlaceOne"->True];
In[]:=
AbsoluteTiming[decodedSolution=PolyominoCoverDecode[Emptiness[],ResourceFunction["FindExactCover"][calendarProblem,Method->"DancingLinksX"],"PlaceOne"->True];]
Out[]=
{0.690579,Null}
Other than colors, the depiction below is the same as the solution above, no coincidence there:
In[]:=
ResourceFunction["PolyominoPlot"][decodedSolution,ColorFunction->Function[If[SameQ[#,0],Black,Hue[#/15]]]]
Out[]=
After about 30 seconds more calculation, we find 92 solutions in total:
In[]:=
AbsoluteTiming[allSols=ResourceFunction["FindExactCover"][calendarProblem,All];]
Out[]=
{22.4451,Null}
In[]:=
Length[allSols]
Out[]=
92
They are all depicted here:
In[]:=
With[{res=ResourceFunction["PolyominoPlot"][PolyominoCoverDecode[Emptiness[],#,"PlaceOne"->True],ColorFunction->Function[If[SameQ[#,0],Black,Hue[#/15]]]]&/@allSols},GraphicsGrid[Partition[res,UpTo[10]],ImageSize->{600,Automatic}]]
Out[]=
Okay, enough of the copy and paste! I was just doing that to prove a point, that you can just download the attached notebook and it automatically runs through to produce all solutions. This is possible as long as your computer’s clock is current and properly synced with DateTime, neat!
How about today? Today seems to be a national holiday, like any other day, but my friend reminded me that it’s actually a holiday for most of the entire world. We don’t need to rerun the statistics, because the previously-noticed discrepancy is probably just differing definitions. Let’s see the numbers again:
Well, look at that!
Actually, today is still on the high-side of the mean, but it’s more normal than two days ago, if that’s really what a small deviation means. The possibilities are slightly more than usual: A fortunate stranger could enter your life stream with a blessing to share...
Unfortunately, my curiosity is now piqued, so I’m just going to give another quick hint, what a statistical analysis day-project would look like. The plan I have in mind is not comprehensive, so perhaps someone will come along later and improve on presentation of results (hopefully after double-checking that the results are indeed correct).
First we need to finish the data object:
Then we get the emptiness from every day:
and make a blank template:
A work of abstract art? And here are the numbers in case anyone cares:
There is not a great pattern here, other than “easy” solutions clustering the remaining emptiness around the edge of the puzzle, which we might have guessed. It looks like the 24th of each month can typically be expected as a more constrained day, and indeed, yesterdays value is only 30:
Tight constraining around this corner probably allows only a few ways to complete the five squares in the southwest corner. Is anyone else interested to take a closer look at this detail?
Well, if yes or not, have a good one, Merry Christmas!
code
code
PolyominoArrays
PolyominoArrays
PolyominoPlot
PolyominoPlot
PolyominoCoverEncoding
PolyominoCoverEncoding
PolyominoCoverDecode
PolyominoCoverDecode
emptiness
emptiness