はじめてのプログラミングを「文言」(漢文プログラミング言語)で 2日目


あらすじ

前回までのあらすじ

  • 初めてのプログラミング言語に「文言」(漢文プログラミング言語)を選ぶ
  • 苦しむ(主に出典の確認に)
  • ようやくコードを書き始める(まだ代入しかできてない)

今回

次回予告通り算術決策をやります。
そうそう、なんか一定の反響を頂いたみたいですね。ありがとうございます。期末テストも終わったのでやっていきます。
気づいたら訓読を作ってる人とかがいました。なんか悔しいので私は見ません。あと私がちゃんと読んでいないことがバレる記事なんかも生まれました。いいね。ただ情報科挙の倍率が高くなるので私は困ります。

毎度おなじみ愛おしい教科書の時間ですね

算術第三

算術、計算っぽいですね。周髀、海島、九章算経とか古代中国の数学書が並んでますね。十書、そういやそんなんもあったっけ。
んーっと、古代ギリシアの国畢氏……誰だ??「万物は数」、ピタゴラスだよな?ん?なんでGuóbìなんだ……?あー、「古希臘国/畢氏」ね。摂氏華氏みたいな。漢文を読んでいると「王安んぞ石なるや」[^1]とか出てきて辛いですね。こんなことがあるとうっかり悔しくなりたくなりますが頑張ります。はい続き、計算って根本的なのは加減乗除だねって書いてある。そうだね。ここで今回の初コード!

加一以二。書之。
減二以一。書之。
乘二以三。書之。
除八以四。書之。

そうだねってなってしまった。まあ「三尺之童(1mチルドレン)でもできるのになんで機械にやらせるの?」とか書いてあるしなあ。「じゃあ大きい数の掛け算やって?できない?はい機械ドーン!」とか書いてある。まあいいや、適当に書いて見よう。

加一以一書之
減一以七書之
乘四以五書之
除三以四書之

乃ち

二
負六
二十
七分五釐

を得る。前後関係はそうなるのね。甲を算すること乙を以てすだもんな。そりゃそうか。
そんで

加七十五以二。乘其以九。減其以三十六。除其以二。加其以五百。書之。

とすると((75+2)9-36)/2+500ね。読みやすい(当社比)けど書きづらい(当社比)
そして減除は交換しないけど加乗は交換する。はいはいはい。以は於でも良いのか。いや、違う違う。甲乙逆にできるんだね。
そして位取りは載から渺で万進、なるほどね。
孫氏に載ってる雉と兎の求め方が書いてある。
「今有雉兔同籠。上有三十五頭。下九十四足。問雉兔各幾何。」
(今、雉と兎が同じ籠にいて、上を見たら35頭、下を見たら94足。それぞれ何羽?)

鶴亀算じゃん。というか頭見て羽数分かれ。両方羽で数えられるの便利(?)ですね。まあ、見ずに書いてみるか。

吾有二數曰三十五曰九十四。名之曰「頭」曰「足」。
注曰総頭兎即。
乘四以「頭」。名之曰「甲」。
減「甲」以「足」。名之曰「剰」。
注曰剰即雉足。
除「剰」以二。名之曰「雉」。
減「頭」以「雉」。名之曰「兎」。
夫「雉」夫「兎」書之。

小学算数的解き方をした。なんやかんやで書けた。さて、上手く動くかな。

二十三 一十二

上手く行った、良かった。途中変なことをしたせいで兎の羽数が負数になったりしたよ!やったね!
さて、教科書は孫氏にならって兎=足/2-頭でさくっと出してるね。えっと
x+y=35
2x+4x=94

だから
x+y=35
x+2y=47

としてやって
y=47-35=12
なのか。
と思ったけど教科書にちゃんと説明あった。
ジョーク上手的人:雉が一本足立ち、兎が二本足立ちしたら足半分。もう一本足上げさせるために半分にした足を頭数で引いて、雉は倒れる(かわいそう)なので兎が分かる。
はえー、良い説明だ。
それから?

兎って子沢山だね!劉勝(前漢めっちゃ子沢山王)の風流だ!雉って美味しいよね!酈生(戦国の儒者、功績の妨害のために煮て殺された)の慘禍に遭っちゃうよね!(=煮て食べられるってこと?)十日後に主人が来たらめっちゃ増えてた。頭579。足2284。頑張って求めて!

増えすぎでは?頭と足、ちゃんと数えたのは偉いと思うけど、籠、分けるべきなんだよなあ。

吾有二數曰五百七十九曰二千二百八十四。名之曰「頭」曰「足」。
注曰総頭兎即。
乘四以「頭」。名之曰「甲」。
減「甲」以「足」。名之曰「剰」。
注曰剰即雉足。
除「剰」以二。名之曰「雉」。
減「頭」以「雉」。名之曰「兎」。
夫「雉」夫「兎」書之。

変数に感謝しながら、実行!

一十六 五百六十三

お、ちゃんと雉が減って兎増えてる!前振りはそういうことだったのね。にしても兎は増えすぎ。実は鼠なのでは?

はい、例二。
許得拉(ヒュードラ)と山海経に載ってる九尾の狐と刑天(首のない妖怪)、孫叔敖(楚の公爵)が出会った両頭の蛇をそれぞれ楚王が何匹か捕まえて首と肘と足と尻尾数えといたので何匹か教えてね!って問題。めんどいので楚王が怖くなったので飛ばします。

最後には円周率とか開平とか中国剰余定理とか出来て嬉しいね!って書いてあった。うれしいね(小並感)

決策第四

if文が書けそうな雰囲気がコードから見えてくる。読んでみよう。
程度の差はあれ獣も卑しい人も偉い人も策って練るよねー。みたいないつもの調子でスタート。
比、決、為の三手順からなるらしい。
馬太効応が例だってよ。なんだろう?

Wikipedia先生「マタイ効果だよ」

はええ、中国人名っぽい音写、罠すぎる。ところで「マタイ効果」は「また行こうか」と同音。
ちゃんと説明続いてた。西洋人が典故で(マタイだもんなあ)、富めるものは富み、貧しきものは貧しくっていうやつっぽい。へー。

吾有一數。曰四十九。名之曰「貯」。
若「貯」大於五十者。
 加「貯」以一。昔之「貯」者。今其是矣。
若非。
 減「貯」以一。昔之「貯」者。今其是矣。
也。

若非で二分岐、で区間終止(云云でもいい)とな。ふむふむ。
昔之「貯」者。今其是矣。ってなーんだ?

人「前やったじゃん」
SY「あー、一日目」

となり、中身変わったときの宣言か。となった。割と忘れてる。

若非のない例も挙げてある。

吾有二數。曰十。曰九。名之曰「器量」曰「酒量」。
若「酒量」大於「器量」者。
 昔之「酒量」者。今「器量」是矣。
云云。
夫「酒量」。書之。
―――――
九

えっと、酒の量が器の容積より大きいときに酒の量を器の容積にする……。
ということは、

吾有二數。曰十。曰十一。名之曰「器量」曰「酒量」。
若「酒量」大於「器量」者。
 昔之「酒量」者。今「器量」是矣。
云云。
夫「酒量」。書之。
―――――
十

はいはいなるほどね。
そして数の比較には6種。

wenyan 意味
等於 等しい
不等於 等しくない
大於 より大きい
小於 より小さい
不大於 以下
不小於 以上

ふむふむ。以上以下混乱しそう。そして物の比較には等於不等於が使える。そうですね。
多分岐の場合は或若を挟んでいくのか。

……と、ここで問題発生。眠い。そして第四が結構長い。というわけで途中ですが一旦ここで止めて、
次回はここからになります。分岐が扱えるようになったから結構色々書けそう。

次回予告

続きから。途中で止めてごめんなさい。でも記事名にも「日」ってあるから許し…て!
次回もお楽しみに!

[^1]: 王安石(北宋の政治家)の誤読。つらい。傍線をください。(標点本《中国などで出版されている、古典に対して句読点などを付したもの》では固有名詞を示すのに横に専名号という傍線を付す。)