Print Story A Day in the Life
Working life
By ReallyEvilCanine (Tue Jan 02, 2007 at 02:45:37 AM EST) A Day in the Life, cubicle, oxygen, cold, sudoku, pie (all tags)
Cow-orkers VIII: Sour Stuff

Germans need lots of "oxygen". They're always complaining, Ich kriege keinen Sauerstoff ("I'm not getting any oxygen"). If only. At the same time they also complain about drafts being terribly unhealthy and even have a special belt for motorcyclists to "protect their kidneys" from all that cold air rushing by. German bikers even wear it in summer.

Twenty below 0°C isn't uncommon in winter here. And yet there are a lot of Germans who will insist on opening the window all the way despite gale force winds, dropping the temperature 30 degrees in as many seconds. Because they "need some oxygen".

x-posted to da brog.



Berti is one of these people. Luckily I don't sit anywhere near Berti anymore. He's in a different wing and we're separated by a couple doors.

Unfortunately my neighbour Joe is also one of these people. He gets in around 6:00a.m. and opens Every. Single. Window. We're not talking much these days. He's angry that I come in and close the windows. He then waits for me to go get coffee or a smoke and tilts half of them back open, including the ones right next to me so that I get a nice breeze.

But back to Berti. He has the uncanny ability to ask the stupidest questions and keep carrying on, following up with further questions into the most niggling details no matter how improbable, taking any conversation on so many "But what if?" tangents of impossibility that you've long forgotten what it was you were talking about.

Berti doesn't save this talent just for meetings. One would think, what with Berti being a non-smoking health nut, that I might get away from him by going outside for a nicotine fix, a killer sudoku in hand to pass the time. One would be wrong.

"So what is that?"
"It's a puzzle. All the numbers 1-9 in every row, in every column, and in every box."

He studied it and looked confused so I showed him again.
"Ah okay. But you have a mistake here then," pointing to a couple 3s sitting diagonally from each other.
"No, diagonals have nothing to do with it."
"But they have to."
"No, Berti, they don't. The diagonals have nothing to do with it."
"But..."
"Look! You can't do diagonals because only the diagonals between the corners have 9 boxes!"

And that's where I should've stopped. But I didn't. I continued, asking him,
"How he hell could you get the numbers 1-9 in this diagonal which only has 5 boxes?"

He's one of those people who doesn't understand the concept of a rhetorical question. Berti took this as in invitation to brainstorm. His grasp of the hypothetical is unparalleled.

He looked at the puzzle again and started making shit up, explaining how you could connect this diagonal with that one and get a total of nine. And therefore the numbers have to fit according to the same rules because they could, since he'd just figured out a way to make diagonals count. Forget the fact that sudoku puzzles have been around for quite some time and the rules have long been agreed upon.

"No! The diagonals have nothing to do with the damned puzzle."
"But they could."
"No, they couldn't. They don't. That's not how the puzzle works," I explained again, stubbing out my cigarette.
"But it would be possible to do it."

I went back inside and he followed me up the stairs continuing his explanation of how it must be possible to follow every potential diagonal wrap-around and ensure they're all unique. I started to take off my jacket as I went to talk to one of his neighbours about a problem but he'd already opened the window again and the temperature was dropping rapidly. I went back to the CubeDesk of Hate only to find Joe was already treating our section to some fresh, -5°C oxygen.

The my-head-shaped-dent in front of my keyboard is getting deep enough to offer some shelter from the wind.

< subdued holidays | BBC White season: 'Rivers of Blood' >
A Day in the Life | 25 comments (25 topical, 0 hidden) | Trackback
Back in the old country . . . by slozo (2.00 / 0) #1 Tue Jan 02, 2007 at 03:00:41 AM EST
. . . of my heritage (Latvia), they do the same thing. Open windows in the middle of winter to bring in some "fresh air". The obsession with fresh air comes with the belief that "stagnant air" develops/carries germs with it, and one will get sick easily and quickly. Of course, following peasant logic, the Latvians take it one step further . . .

. . . the wind can only come from one side or direction, otherwise you get the evil harm-inducing "through wind", which directly translated sounds a little strange. So, whether in a car, or house, if one window is open, then the others must be closed - otherwise, you will quickly get a cold, possibly pneumonia. Trying to get my distant relatives to explain the science behind this concept brought about some hilariously retarded explanations for me . . .

"stagnant air" carries germs with it by wiredog (2.00 / 0) #6 Tue Jan 02, 2007 at 03:39:07 AM EST
That's actually true. Well, the "carries" part. Tuberculosis infection rates are lower when the air is changed more frequently.

Earth First!
(We can strip mine the rest later.)

[ Parent ]
Right, and TB was a huge killer . . . by slozo (2.00 / 0) #7 Tue Jan 02, 2007 at 03:55:43 AM EST
. . . a century ago. Seems like some cultures get stuck in certain modes of thought, and aren't very condusive to changing their ways.


[ Parent ]
Well, consider that by wiredog (2.00 / 0) #10 Tue Jan 02, 2007 at 04:48:48 AM EST
People still cover their mouths when coughing (or are expected to) even if they turn away from you...

Earth First!
(We can strip mine the rest later.)

[ Parent ]
Well, this I don't particularly mind . . . by slozo (2.00 / 0) #13 Tue Jan 02, 2007 at 05:11:20 AM EST
. . . protects me from the spittles. Plus, it's a bit cultural, a form of politeness really. In China, for instance, they never say bless you when a sneeze happens, or cover their mouths when coughing (it's rare) . . . but when using a toothpick in public, you have to hide it with your other hand, other wise you are considered a rude boor . . .

[ Parent ]
Modern science by ucblockhead (2.00 / 0) #19 Tue Jan 02, 2007 at 07:18:13 AM EST
Now they say you aren't supposed to cough into your hand...that just puts germs on your hand for easy spreading. You're supposed to cough into the crook of your elbow.
---
[ucblockhead is] useless and subhuman
[ Parent ]
Cold Kidneys by Phage (2.00 / 0) #2 Tue Jan 02, 2007 at 03:14:28 AM EST
We've covered before. But I woud have thought that Sudoku was right up the Teutonic street.
<Insert Ob ethnic slur or football reference here>

Apparently it's not ordered enough by ReallyEvilCanine (2.00 / 0) #3 Tue Jan 02, 2007 at 03:21:34 AM EST
Berti came up with further hypotheses about how the puzzles should work. I don't dare show let him see any jigsaw sudokus.

the internet: amplifier of stupidity -- discordia

[ Parent ]
<shakes head> by Phage (2.00 / 0) #5 Tue Jan 02, 2007 at 03:29:03 AM EST
Sounds like another way to impose order on the world. Hey, those jigsaw versions look like fun.....oh you swine, there goes an afternoon.

[ Parent ]
"Oxygen" by ObviousTroll (4.00 / 1) #4 Tue Jan 02, 2007 at 03:28:49 AM EST
Are you sure this isn't an euphemism?

Not to put too fine a point on it, how's your personal hygiene?

;-/

I tend to open windows when I can, but I usually stop once frost starts forming on my keyboard.

--
It was an American tradition, like fathers chasing kids around with power tools.

No euphemism by ReallyEvilCanine (4.00 / 1) #8 Tue Jan 02, 2007 at 04:06:55 AM EST
If they meant "air" they'd say Luft. I've had it explained to me by my ex-FiL. The oxygen gets used up or "goes stale". Surprisingly few Germans have ever died of asphyxiation in buildings with sealed windows but why let logic get in the way of a good reason to complain?

I don't mind a little fresh air now and again, but for people who want to be so "green", I have to wonder why they're more than happy to open the fucking windows until the inside temperature falls to that of the outside and waste all that heat. There's a digital thermometer across from me which confirms.

the internet: amplifier of stupidity -- discordia

[ Parent ]
Erm by Evil Herring (4.00 / 5) #11 Tue Jan 02, 2007 at 04:58:26 AM EST
I thought that a surprisingly large number of people had died in Germany in sealed rooms.

[ Parent ]
open windows. by aphrael (2.00 / 0) #16 Tue Jan 02, 2007 at 06:21:43 AM EST
i like having windows open.

i'm perfectly content to have whatever enclosed spaced i'm in have all of its windows open, matching the outdoor temperature, whether that outdoor temperature is 30F or 100F --- without invoking a heater or air conditioner. I just either put on more clothes or strip.

How is this insufficiently 'green'?

If television is a babysitter, the internet is a drunk librarian who won't shut up.

[ Parent ]
I hope you're pleased with yourself by herbert (2.00 / 0) #9 Tue Jan 02, 2007 at 04:42:39 AM EST
You made me go and write a program to try and see if there's a valid sudoku with diagonals.

It finds a valid normal sudoku in a second or two, and one with sudokuesque main diagonals in a few seconds.

After a few minutes it hasn't managed to find one which has all 18 diagonals correct.  It's still running though.

OK, now you can hate me as much as you hate this Berti chap.

That's great! by ReallyEvilCanine (2.00 / 0) #12 Tue Jan 02, 2007 at 05:07:51 AM EST
At least you're brute-forcing the matter rather than insisting that the puzzle in and of itself is wrong. There may be some solution which yields all diagonals (not surprising if there's at least one in the over 40 billion possible legitimate sudoku grids), but it's not a requirement in any normal suduko variant.

PLZPSTSRC!!

the internet: amplifier of stupidity -- discordia

[ Parent ]
SRC by herbert (4.00 / 1) #14 Tue Jan 02, 2007 at 05:49:06 AM EST

Not very pretty, and probably buggy.

For a vague progress indicator it outputs the maximum number of squares it has so far managed to fill without the board being invalid.

It stops when it finds a valid board, and prints it. If it stops without printing one, there isn't one.

It really ought to fix the values in the first row to always be 1 to 9 in order, but it doesn't.

There is a valid 5x5 board with all diagonals, horizontals and verticals correct, but with no equivalent of the small 3x3 squares on a 9x9 board.

There is no 2x2, 3x3, 4x4 or 6x6 board like this.

I've got no idea how long this will take to run on 9x9 - I only know it's more than a few minutes.


#!/usr/bin/python

import sys

size = 9

horizontals = [ [ (r,c) for c in range(0,size) ] for r in range(0, size) ]
verticals = [ [ (r,c) for r in range(0,size) ] for c in range(0, size) ]

diagonalsdown = [ [ ( ( r+i ) % size, i ) for i in range(0,size) ] for r in range(0,size) ]
diagonalsup = [ [ ( ( r-i+size ) % size, i ) for i in range(0,size) ] for r in range(0,size) ]

maindiagonals = [ [ (i,i) for i in range(0,size) ],
                  [ (i, size-1-i) for i in range(0,size)] ]

# wrong for size != 9
smallsqs = [ [ (r,c),(r,c+1),(r,c+2),(r+1,c),(r+1,c+1),(r+1,c+2),(r+2,c),(r+2,c+1),(r+2,c+2) ]  for r in [ 0, 3, 6 ] for c in [ 0, 3, 6 ] ]

#groups = horizontals + verticals + smallsqs + maindiagonals
groups = horizontals + verticals + smallsqs + diagonalsup + diagonalsdown

board = [ [ 0 for i in range(0,size) ] for j in range(0,size) ]

def dumpboard():
    for r in board:
        for c in r:
            if c == 0: print '.',
            else: print c,
        print

def getsq( sq ):
    assert( sq >= 0 and sq < size*size )
    return board[sq / size][sq % size]

def setsq( sq, i ):
    assert( sq >= 0 and sq < size*size )
    board[sq / size][sq % size] = i

def valid( sq ):
    assert( sq >= 0 and sq < size*size )
    r = sq / size
    c = sq % size

    for group in groups:
        values = [ board[r][c] for (r, c) in group ]
        assert( len(values) == size )
        values.sort()
        for i in range( 0, len(values)-1 ):
            if values[i] != 0 and values[i] == values[i+1]:
                return False
    return True

bestsqreached = 0

def fill( sq ):
    if sq == size * size:
        dumpboard()
        sys.exit( 0 )

    assert( getsq( sq ) == 0 )
    for i in range( 1, size+1 ):
        setsq( sq, i )
        global bestsqreached
        if sq >= bestsqreached:
            bestsqreached = sq
            print sq
        if valid( sq ):
            fill( sq + 1 )
        setsq( sq, 0 )

fill( 0 )


[ Parent ]
You've overdoing it by BadDoggie (2.00 / 0) #17 Tue Jan 02, 2007 at 06:33:59 AM EST
I've yet to have solved a single sudoku in which any row ran 1-9 in order. I don't think I've even seen a run of more than 3 consecutive numbers.

woof.

OMG WE'RE FUCKED! -- duxup ?

[ Parent ]
They're the same by substitution by squigs (2.00 / 0) #18 Tue Jan 02, 2007 at 06:45:21 AM EST
Assign each number an arbitrary letter from a-i and substitute.  Assign each letter an arbitrary number from 1-9 and substitute.  You'll end up with a valid sudoku which can be solved in exactly the same way.  And all of them will have exactly one mapping that gives you 1-9 in the top row (or any other given group)

[ Parent ]
Where I'm really overdoing it by herbert (2.00 / 0) #20 Tue Jan 02, 2007 at 08:23:54 AM EST
is in checking the whole board for validity every time I place a single number.

I will need to work on a SUPAR-FAST version, or wait for a mathematician to prove it one way or the other using intelligence.

I was wondering if you can prove it impossible by saying that the first '1' you place rules out another 8+8+8+8 positions for putting '1's in, then the second '1' you place rules out maybe about another 5+5+5+5-ish places, and so on - if you can count accurately and get to more than 81, you've proved that it's impossible to get all the '1's in.

[ Parent ]
"using intelligence" by TurboThy (2.00 / 0) #21 Tue Jan 02, 2007 at 09:20:36 AM EST
Apropos that line, has anybody seen DU lately?
__
Sommerhus til salg, første række til Kattegat.
[ Parent ]
Doesn't work with a 4x4 by squigs (2.00 / 0) #15 Tue Jan 02, 2007 at 06:00:51 AM EST
4x4 is easy to check on paper.  First line is always equivalent to 1234.  Gives 4 choices for second line - 3412, 4312, 3421 and 4321, only one of which works with the diagonal rule.  Absolutely nowhere to put 1 on the third line.

[ Parent ]
Wierd. by duxup (2.00 / 0) #22 Wed Jan 03, 2007 at 06:23:12 AM EST
I was not familiar with the German fixation on getting oxygen.  I wonder what the basis for that obsession is.
____
i saw a book today called extreme sudoku by gzt (2.00 / 0) #23 Thu Jan 04, 2007 at 06:15:21 PM EST
it was "extreme" in having sudokus that had to be solved along the long diagonals as well. so there you go.

link included by gzt (2.00 / 0) #24 Thu Jan 04, 2007 at 06:16:33 PM EST
I've seen those by ReallyEvilCanine (2.00 / 0) #25 Thu Jan 04, 2007 at 09:15:30 PM EST
They require uniqueness on the two major diagonals and aren't really any tougher than normal sudokus. Berti still firmly believes that each diagonal has to work, wrapping around the puzzle if necessary to complete the row of nine digits.

The evil/diabolical level jigsaws are a bitch.

the internet: amplifier of stupidity -- discordia

[ Parent ]
A Day in the Life | 25 comments (25 topical, 0 hidden) | Trackback