コード短編小説「ゼロ除算」

に公開

コード短編小説「ゼロ除算」

それは都市の中心で起きた。
巨大な演算塔が一瞬で沈黙し、数百万のプロセスが同時に落ちた。
原因はただ一つ――

x = 1 / 0  # ZeroDivisionError

分母がゼロになる。
単純すぎて、誰も想定しなかった。


神崎ユウはエンジニア班の端末を睨んだ。
スクリーンいっぱいに赤い文字が踊る。

ZeroDivisionError: division by zero

「こんな……バカげた理由で?」
隣の若手が青ざめて首を振る。
「処理系は全自動のはずです。ゼロで割ろうとしたら、自動で補正される……はずだったのに」

けれど、補正は働かなかった。
都市の心臓は止まり、信号機は沈黙し、冷蔵庫の中で食料が腐り始めている。


「ゼロ除算は、禁忌だ」
古いプログラマーが呟いた。
「何もないものを分けようとすれば、すべてが壊れる」

ユウは理解できなかった。
数式のエラーがどうして街全体を沈黙させるのか。
だが塔の演算はすべての基盤を支えていた。
ゼロに触れた瞬間、その支柱は無限大に膨れ上がり、あらゆる値を飲み込んだ。


夜、ユウは廃墟となった広場を歩いた。
誰も声を出さず、ただ「分母」を恐れていた。

ポケットのメモ帳に、彼は書き殴る。

try:
    value = 1 / 0
except ZeroDivisionError:
    value = "生きてる"

処理系なら救える。
だが現実は救わない。
誰もが「try」したが、「except」に辿りつけなかった。


その時、彼の前にひとりの少女が現れた。
名をルリと言った。
彼女の掌には、小さな「ゼロ」が乗っていた。
「これは、あなたたちが無視した値」
ユウは後ずさった。
「触れるな、それは――」
だがルリは微笑む。
「ゼロは虚無じゃない。ゼロは約束だよ。分け合う前に、みんなが同じ場所に立ってるっていう」


ユウは目を見開いた。
ゼロを避ければ、確かにエラーは起きない。
だがゼロを受け入れなければ、始まりもまた生まれない。

def divide(a, b):
    if b == 0:
        return "share"
    return a / b

ルリはゼロを空に投げた。
夜空に白い環が広がり、人々が小さな声を取り戻す。
「ただいま」
「おかえり」
――それは割り切れないものを、無理に割らずに共有する方法だった。


やがて都市は再び動き出す。
エラーは消えたわけではない。
ゼロは依然としてそこにある。
だが、人々はゼロを抱えたまま前に進むことを選んだ。

ユウはそっと呟く。
「ゼロで割れないなら、割らなければいい。
……でも、ゼロを忘れちゃいけないんだ」

ルリは笑って頷いた。
その瞳には、無限大ではなく、ただひとつの「はじまり」が宿っていた。

Discussion