OZONE Asylum
Forums
Server-Side Scripting - Oh my!
Latin Square Trick That Blew My Mind
This page's ID:
33340
Search
QuickChanges
Forums
FAQ
Archives
Register
Edit Post
Who can edit a post?
The poster and administrators may edit a post. The poster can only edit it for a short while after the initial post.
Your User Name:
Your Password:
Login Options:
Remember Me On This Computer
Your Text:
Insert Slimies »
Insert UBB Code »
Close
Last Tag
|
All Tags
UBB Help
One day I started playing with sudoku. I wanted to make big ones. I found that using orthogonal latin squares makes it wicked easy. Full of patterns, but I also figured out how to break those patterns in the final sudoku. There was one idea on creating larger orthos that had occurred to me way back then. I played with it a bit, but I couldn't quite see it. The idea being to start with smaller orthos and making them bigger a little bit at a time. Back then, I would have been happy just to be able to make bigger latin squares a little bit at a time. Imagine taking a latin square of size 3x3 and turning it into a 4x4. Imagine being able to do the same thing with corresponding ortho. That is the basic idea. But I couldn't see it, even for a regular latin square. It has been on the back burner for a few years. And then came this morning... right before my alarm went off. I was in a half-and-half state and running all sorts of transversals through my brain. And then I saw it! And then my alarm went off! Egads, no! I walk to work and on the way I was running through it some more looking for little things. Everything looked good in my brain. And I thought about it some more while I was at work. While on break I drew a little doodle and it does work for latin squares. What about corresponding orthos? Well, that would have to wait a little bit after I played with just latin squares. I finally get home and fired up Geany. Normally graphic paper to start, but low-tech supplies woefully low. Text editor of choice it is. For latin squares, still looks good. Time to play a little bit to see if I can do the same with an ortho and keep things ortho. First try was an epic fail. I did the Zen thing on the epic fail for a little minute and said, "Fuck it." The next thing that I tried absolutely floored me. Seriously, me, stunned at what I was looking at. Okay, time for the basic idea and technique. And it starts with orthos of size 3x3: [code] 0 1 2 0 1 2 2 0 1 1 2 0 1 2 0 2 0 1 [/code] That is as small as you can get. To get the transversals, going to use one to mask the other: [code] . . 2 . . 2 . 0 . . 2 . 1 . . 2 . . 0 . . 0 . . . . 1 . . 0 . 2 . . 0 . . 1 . . 1 . 2 . . 1 . . . . 0 . . 1 [/code] Let's take the first one, upper-left and operate to expand it to a 4x4. [code] . . 2 0 1 2 . . 0 . 2 0 1 . 1 . . 1 2 0 . . . . . [/code] Can you see it? That transversal and the square that it came from but expanded to 4x4 on the right and bottom? So, in the first line at the top, going to shoot a 2 to the right and to the bottom. Then change the original 2 position to a 3. [code] . . 2 0 1 3 2 . 0 . 2 0 1 . 1 . . 1 2 0 . . . 2 . [/code] Please tell me you can see that because we are going to do the same thing 0 in the next line and finally 1 in the last line. Now 0: [code] . . 2 0 1 3 2 . 0 . 2 3 1 0 1 . . 1 2 0 . . 0 2 . [/code] And finally 1 in the last line: [code] . . 2 0 1 3 2 . 0 . 2 3 1 0 1 . . 3 2 0 1 1 0 2 . [/code] And the last thing to do is put a 3 in the bottom-right corner for this: [code] 0 1 3 2 2 3 1 0 3 2 0 1 1 0 2 3 [/code] And we now have a latin square of 4x4. Not only that, but it is a permed version of XOR 4x4 (the fact that it is XOR is the very first thing that I had noticed). If you have the right transversal, you can made a bigger latin square. Said proper transversal seems to come from the ortho. So, is it possible make the ortho bigger as well? My first attempt on that was epic fail. It was a pattern that I had seen many times before that didn't suit my purpose. And that's when I said, "Fuck it," and just randomly tried something just to see what would pop-out the other end. From that one square, I took the three transversals, these guys: [code] 0 1 2 . . 2 0 . . . 1 . 2 0 1 . 0 . . . 1 2 . . 1 2 0 1 . . . 2 . . . 0 [/code] (Same as above but horizonetal instead of vertical.) And I did the same right/bottom/replace thing. And something completely amazing came out of the other end. Check these bad boys out: [code] 0 3 2 1 3 1 2 0 0 1 3 2 1 2 3 0 1 3 0 2 3 2 0 1 3 0 1 2 2 0 3 1 2 3 1 0 2 1 0 3 0 2 1 3 1 0 2 3 [/code] Not only is each a valid latin square, but they are all mutually orthogonal latin squares (MOLS). Pick any two and they are orthogonal. Here is the basic relationship that holds true using 0's in the first one as the mask: [code] 0 . . . 3 . . . 0 . . . . . . 0 . . . 2 . . . 1 . 0 . . . 0 . . . 3 . . . . 0 . . . 1 . . . 2 . [/code] Seriously? WTF?! I did *not* see that coming. Somehow I had managed to take orthos of size 3x3 and turn them into 3 MOLS of size 4x4. My mind absolutely boogles at that. But that is my first go and it has been less that 24 hours. I have absolutely zero idea is this will lead anywhere or if it is a one-trick pony. Either way I am very happy and excited about this little nugget (even if it is a nugget with no mother lode). Woot! [small](Edited by [url=https://ozoneasylum.com/user/351]warjournal[/url] on 03-16-2021 15:51)[/small]
Loading...
Options:
Enable Slimies
Enable Linkwords
« Backwards
—
Onwards »
Maximum Security
OZONE
DHTML/Javascript
Server-Side Scripting - Oh my!
CSS - DOM - XHTML - XML - XSL - XSLT
Stupid Basic HTML
Visual Therapy
Photoshop
Photoshop Pong, Anyone?
***WARNING*** BIG SIG APPROACHING
Photography
3D Modelling & Rendering
Multimedia/Animation
Print Graphics
Holding Pens
Philosophy and other Silliness
Outpatient Counseling
Site reviews!
Mad Scientists' Laboratory
Getting to know the Grail