q: how many ways are there to partition a 5x5 tile square into 5 pieces, each containing 5 orthogonally contiguous tiles?
(Asking for a self who is considering a brute-force algorithm.)
I figure there's a tree. Every such partition has [0,0] in A. There are only three one-steps away, [0,1] in A, [1,0] in A, or both. And so on. If we mapped that tree one time, we'd have a number of cases. Times 4 for rotational symmetry. Times 2(?) for diagonal symmetry?
Wait. There is no rotational symmetry. No matter what arrangement we start there's always a [0,0]->[0,1] or [0,0]->[1,0].
Background: random gerrymandering puzzles. I chose 5x5 just cuz that's a starting point. Rules of the game are 1) meet the criteria above, and 2) gerrymander it so a 9/16 party split still yields a 3/2 precinct split. I am wondering how big a brute-force approach would be.
• • •
Missing some Tweet in this thread? You can try to
force a refresh
My rice'n'garlic advice, "take many more much smaller steps," can be said another way: reject any proposed path that requires a step size larger than the limit you've set for that particular domain of activity.
Time for Sunday geek comfort. It's meant to be respite. There are more important things than geekery, so please remember to think outside the monitor.
Stay strong, stay safe, stay angry, stay kind.
Black Lives Matter.
"Rice'n'garlic advice" is blind advice, for when people ask you what to do, but you're not there & can't see. You have to guess. A professional chef I know, when asked to give blind advice, always says this:
1) That's too much rice. 2) That's not enough garlic.
Once armed with the idea of a shipping app and a making app, a whole range of possibilities open up. Among the most powerful: give your making app a UI just for making.
It's Sunday, which is geek comfort food day for me. Remember, tho, to think and feel and work outside the monitor. Please help me in opposing the multiple ongoing efforts to suppress the votes of millions of American citizens.
Black Lives Matter.
A "making app" is when we take the same sourcecode from the program we're shipping, and use it for another program at the same time. That program is one we develop and tailor expressly to enable us to work more effectively on the shipping app.
My friend Steve, I was spozed to be the pro from dover, told me this thing, and for, idunno, 17 years or so(?), I've been holding on to it. He said it boils down to two things. Don't waste time. Accept the whole person.
NB: It doesn't mean "accept everyone". It means, if you accept my geek chops, or you accept my sex appeal, or you accept my brilliant theorizing, you gotta accept my (considerable) doofusness.
You can't take my good days and not accept my bad ones. And if you can't handle my awful, why are you prepared to cash in on my valuable?
In a data-rich environment, we can use the Builder concept to make DSL's for our Making application. This often makes testing the hard business core of our code both faster and easier.
Folks, I love sharing my geekery with you. For me, it brings much comfort. I hope, tho, you'll join me in working for change that isn't just about code, but about the larger world.
Black Lives Matter.
We've spoken in the past about using our codebase to do more than one thing. We always use it to create our shipping app. But we can and do use it for an app that improves our *making* process. We call that the making app.