今日のネットニュースで流れてきました。作者の恐るべき実力に敬服!
言語としては代入が面倒で糞w
forest.watch.impress.co.jp
コメントが欄外注になるのは実にいい。すべての言語で、整形文はこういう感じに綺麗にして欲しい。入力は ASCII でいいが。
github.com
オンライン実行環境あり。
http://wenyan-lang.lingdong.works/ide.html
分割数プログラムを漢文風に
fortran66.hatenablog.com
参考
var pp = function (n, m) {
if (n == 0) {return 1};
if (m == 1) {return 1};
if (n <= 0) {return 0};
if (m <= 0) {return 0};
return pp(n - m, m) + pp(n, m - 1);
}
var partition = function (n) { return pp(n, n) };
for(i = 1; i < 11; i++) {
console.log(partition(i));
};
ソース・プログラム
吾有一術。名之曰「制限分割」。欲行是術。必先得二數。曰「甲」。曰「乙」。乃行是術曰。
若「甲」等於零者。乃得一也。
若「乙」等於一者。乃得一也。
若「甲」小於零者。乃得零也。
若「乙」小於一者。乃得零也。
減「甲」以「乙」。名之曰「丙」。
減「乙」以一。名之曰「丁」。
施「制限分割」於「丙」。於「乙」。名之曰「戊」。
施「制限分割」於「甲」。於「丁」。名之曰「己」。
加「戊」以「己」。名之曰「庚」
乃得「庚」
是謂「制限分割」之術也。
吾有一術。名之曰「分割」。欲行是術。必先得一數。曰「甲」。乃行是術曰。
施「制限分割」於「甲」。於「甲」。名之曰「乙」。
乃得「乙」
是謂「分割」之術也。
吾有一數。曰四十。名之曰「甲」。
有數一。名之曰「乙」。恆為是。若「乙」大於「甲」者乃止也。
施「分割」於「乙」。名之曰「丙」。
吾有五言。曰「「 分割数 」」。曰「乙」。曰「「 是 」」。曰「丙」。曰「「 焉。」」。書之。
加「乙」以一。昔之「乙」者。今其是矣。
云云。
書き下し文(テキトーw)
吾に一つ術あり。これを名付けて制限分割という。この術を行わんと欲すれば、必ずやまず二数を得よ。甲といい乙という。 すなわちこの術を行いて曰く。
もし甲の零に等しきは、すなわち一を得るなり。
もし乙の一に等しきは、すなわち一を得るなり。
もし甲の零より小さきは、すなわち零を得るなり。
もし乙の一より小さきは、すなわち零を得るなり。
甲を減ずるに乙を以てす。これを名付けて丙という。
乙を減ずるに一を以てす。これを名付けて丁という。
制限分割に施すに、丙に、乙においてす。名付けてこれを戊という。
制限分割に施すに、甲に、丁においてす。名付けてこれを己という。
戊に加うるに己を以てす。これを名付けて庚という。
すなわち庚を得る。
これを制限分割の術と謂うなり。
吾に一つ術あり。これを名付けて分割という。この術を行わんと欲すれば、必ずやまず一数を得よ。甲という。すなわちこの術を行いて曰く。
制限分割に施すに、甲に、甲においてす。名付けてこれを乙という。
すなわち乙を得る。
これを分割の術と謂うなり。
吾に一つの数あり。四十という。これを名付けて甲という。
数の一なるあり。これを名付けて乙という。つねに是となす。もし乙の甲より大なればすなわち止む。
分割に施すに乙においてす。これを名付けて丙という。
吾に五言あり。曰く「 分割数 」、曰く乙、曰く「 是 」、曰く丙、曰く「 焉。」。これを書せ。
乙に加うるに一を以てす。昔の乙は、今はそれこれなり。
うんぬん。
実行結果
OUTPUT
分割数 一 是 一 焉。
分割数 二 是 二 焉。
分割数 三 是 三 焉。
分割数 四 是 五 焉。
分割数 五 是 七 焉。
分割数 六 是 一十一 焉。
分割数 七 是 一十五 焉。
分割数 八 是 二十二 焉。
分割数 九 是 三十 焉。
分割数 一十 是 四十二 焉。
分割数 一十一 是 五十六 焉。
分割数 一十二 是 七十七 焉。
分割数 一十三 是 一百零一 焉。
分割数 一十四 是 一百三十五 焉。
分割数 一十五 是 一百七十六 焉。
分割数 一十六 是 二百三十一 焉。
分割数 一十七 是 二百九十七 焉。
分割数 一十八 是 三百八十五 焉。
分割数 一十九 是 四百九十 焉。
分割数 二十 是 六百二十七 焉。
分割数 二十一 是 七百九十二 焉。
分割数 二十二 是 一千零二 焉。
分割数 二十三 是 一千二百五十五 焉。
分割数 二十四 是 一千五百七十五 焉。
分割数 二十五 是 一千九百五十八 焉。
分割数 二十六 是 二千四百三十六 焉。
分割数 二十七 是 三千零一十 焉。
分割数 二十八 是 三千七百一十八 焉。
分割数 二十九 是 四千五百六十五 焉。
分割数 三十 是 五千六百零四 焉。
分割数 三十一 是 六千八百四十二 焉。
分割数 三十二 是 八千三百四十九 焉。
分割数 三十三 是 一萬零一百四十三 焉。
分割数 三十四 是 一萬二千三百一十 焉。
分割数 三十五 是 一萬四千八百八十三 焉。
分割数 三十六 是 一萬七千九百七十七 焉。
分割数 三十七 是 二萬一千六百三十七 焉。
分割数 三十八 是 二萬六千零一十五 焉。
分割数 三十九 是 三萬一千一百八十五 焉。
分割数 四十 是 三萬七千三百三十八 焉。
fortran66.hatenablog.com