Firmianaの落書き

プログラミング関係のことを中心に書きます(多分)

FiOL ニトラ語-2 解答・解説・解法例

************************************************************************************************************************************************************************************

 問題はこちらから↓

firmiana.hatenablog.com

解答(例)

設問A

ニトラ語アラビア数字
1. ka \times mi = mi1\times 0=0
2. pute = pumi3^2=9
3. te + ka + pu + so + na = pu\times pu+ fi2+1+3+4+5=3\times 3+6
4. sote \times le= sohupupi4^2\times7=112
5. co + co= some8+8=16
6. naso = kahumite5^4=625
7. pumi + some = kahumika9+16=25
8. ka = lemi1=7^0
9. sone - pufi = fi21-15=6
10. tepumi = sosehupupi2^9=512
11. na + fi = puti5+6=11

設問B

ニトラ語アラビア数字
12. soce24
13. tehupuni64
14. pukihumipu156,250

設問C

アラビア数字ニトラ語
a. 19sope
b. 738kahusohupusi
c. 200,000,000sosehupupihumiso

設問D

ニトラ語アラビア数字
15. te - miyote= kayosole2-0.08=1.92
16. pukiyonahuna+ coyosose= sopeyosohuna10.208+8.96=19.168
17. puyana = miyopusi\dfrac{3}{5}=0.6
18. leyosome + te + coya + ya= puki7.64+2+\dfrac{8}{25}+\dfrac{1}{25}=10
19. teyale \times coyapu = someyasone\dfrac{2}{7}\times\dfrac{8}{3}=\dfrac{16}{21}
20. ya = miyoco\times te - puya\dfrac{1}{25}=0.08\times 2-\dfrac{3}{25}

設問E

ニトラ語アラビア数字
21. fiyale\dfrac{6}{7}
22. miyopusi0.52
23. yate\dfrac{1}{2}

設問F

数式値(アラビア数字)値(ニトラ語)
24. na \times coyana - co =0mi
25. fiya \times nayaco \times yapu =\dfrac{1}{20}yasose
26. kahusose \times coyapufi +( puso - miyona \times na )\times kahumika =2024puhunahusoce

採点基準

設問問題数1問の配点ボーナス点総点
A110.450点なし4.950点
B30.675点なし2.025点
C30.675点なし2.025点
D60.850点なし5.100点
E30.850点0.400点4.950点
F30.850点0.400点4.950点
合計20.000点

  • 正答である場合は上記の得点の100%を与える。
  • 正答でない場合は上記の得点から1箇所の誤りにつき満点の40%を差し引いた得点を与える。ただし、負になることはない。
    なお、要点が 1 箇所または 2 箇所のみの場合は、全て間違えた場合 0.000点 となる。
  • 分数で答えるべきところを小数で答えた場合、またはその逆の場合、1ミスとして扱う。
  • E,Fについては、全ての問題を正解した場合にのみ末尾に付した得点(0.400点)を与える。

規則

整数

  1. 上位から下位に、左から右に位取り記数法かつ二十五進法で表記する。
  2. 1 桁の数は以下のように表現する。なお、カッコ内の文字は二十五進法の数である。(アラ : アラビア数字、ニト : ニトラ語)

    アラニトアラニトアラニト
    0mi9pumi16(G)some
    1ka10(A)puki17(H)soke
    2te11(B)puti18(I)sote
    3pu12(C)pupi19(J)sope
    4so13(D)pusi20(K)sose
    5na14(E)puni21(L)sone
    6fi15(F)pufi22(M)sofe
    7le23(N)sole
    8co24(O)soce
  3. 2 桁以上の数は桁区切りを -hu- として表記する。
  4. 0 が連続する場合、mi のあとに連続する数を付けて表す。途中の桁区切りは省略される。

小数

  1. 小数点を -yo- で表す。整数部および小数部は整数と同様。

分数

  1. 分子→分母の順に、境目を -ya- で区切って表す。分子および分母は整数と同様。
  2. 分子が 1 の場合、分子は省略される。
  3. 分母が十進法で 25 の場合、分母は省略される。

ポイント

  • 「pumi」など 2 音節の語に位取りが含まれない・・・・・ことに気付いたか
  • 2 音節の語の規則が分かったか
  • 位取り記数法で表現されることが分かったか
  • 二十五進法であることが分かったか
  • 数の形式から小数や分数が含まれていることが分かったか
  • 分数の省略の規則を見抜けたか

解法例

step 1.

1. に注目する。式変形により (\mathrm{ka}-1)\times\mathrm{mi}=0 ゆえ、\mathrm{ka}=1 または \mathrm{mi}=0 である。

  1. \mathrm{ka}=1 だとすると、8. より \mathrm{le}=1 または \mathrm{mi}=0 であるが、le と ka は異なる値と考えるのが妥当。よって \mathrm{mi}=0
  2. \mathrm{mi}=0 だとすると、8. より \mathrm{ka}=\mathrm{le}^0=1 (le はどんな値でもよい)

以上より \mathrm{mi}=0\mathrm{ka}=1 となる。

ニトラ語現状
1. ka \times mi = mi \mathbf{1}\times\mathbf{0}=\mathbf{0}
2. pute = pumi pute = pumi
3. te + ka + pu + so + na = pu\times pu+ fi te +\mathbf{1}+ pu + so + na = pu\times pu+ fi
4. sote \times le= sohupupi sote \times le= sohupupi
5. co + co= some co + co= some
6. naso = kahumite naso = kahumite
7. pumi + some = kahumika pumi + some = kahumika
8. ka = lemi \mathbf{1}= le^{\mathbf{0}}
9. sone - pufi = fi sone - pufi = fi
10. tepumi = sosehupupi tepumi = sosehupupi
11. na + fi = puti na + fi = puti

step 2.

step 1.2. 10. および問題文より、

\mathrm{te}^{\mathrm{pumi}} = \mathrm{te}^{\mathrm{pu}^{\mathrm{te}}} \leqq 1000 (te の (pu の te 乗) 乗が 1000 以下)

te も pu も 2 以上なので、これを満たすのは 2^{3^2}=2^9=512、つまり \mathrm{te}=2\mathrm{pu}=3 のみ。

よって \mathrm{pumi}=9 であるが、ここで pumi を pu-mi と分け、位取り記数法で表現しようとすると、進数を 2 以上の整数 xn を 1 以上の整数として、3x^n=9 かつ x\gt\mathrm{pu}=3 よりこのような x, n は存在しないから、pumi は位取り記数法ではない別の規則で 9 を表現していることが考えられる。

以上より、単に \mathrm{pumi}=9 としておく。

ニトラ語現状
1. ka \times mi = mi 1\times0=0
2. pute = pumi \mathbf{3}^{\mathbf{2}}=\mathbf{9}
3. te + ka + pu + so + na = pu\times pu+ fi \mathbf{2}+1+\mathbf{3}+ so + na = \mathbf{3}\times\mathbf{3}+ fi
4. sote \times le= sohupupi so^{\mathbf{2}}\times le= sohupupi
5. co + co= some co + co= some
6. naso = kahumite naso = kahumite
7. pumi + some = kahumika \mathbf{9}+ some = kahumika
8. ka = lemi 1= le^{0}
9. sone - pufi = fi sone - pufi = fi
10. tepumi = sosehupupi \mathbf{2}^{\mathbf{9}}=\mathbf{512}
11. na + fi = puti na + fi = puti

step 3.

既に確定した数と 6. および問題文より \mathrm{na}^{\mathrm{so}} \leqq 1000 かつ na と so は異なる値でいずれも 4 以上だから、\mathrm{na}=5\mathrm{so}=4、つまり \mathrm{kahumite}=5^4=625 となる。

ニトラ語現状
1. ka \times mi = mi 1\times0=0
2. pute = pumi 3^2=9
3. te + ka + pu + so + na = pu\times pu+ fi 2+1+3+\mathbf{4}+\mathbf{5}=3\times 3+ fi
4. sote \times le= sohupupi \mathbf{4}^2\times le= sohupupi
5. co + co= some co + co= some
6. naso = kahumite \mathbf{5}^{\mathbf{4}}=\mathbf{625}
7. pumi + some = kahumika 9+ some = kahumika
8. ka = lemi 1= le^{0}
9. sone - pufi = fi sone - pufi = fi
10. tepumi = sosehupupi 2^9=512
11. na + fi = puti \mathbf{5}+ fi = puti

step 4.

既に確定した数と 3. より 1+2+3+4+5=3\times 3+\mathrm{fi} から \mathrm{fi}=15-9=6 となる。

ニトラ語現状
1. ka \times mi = mi 1\times0=0
2. pute = pumi 3^2=9
3. te + ka + pu + so + na = pu\times pu+ fi 2+1+3+4+5=3\times 3+\mathbf{6}
4. sote \times le= sohupupi 4^2\times le= sohupupi
5. co + co= some co + co= some
6. naso = kahumite 5^4=625
7. pumi + some = kahumika 9+ some = kahumika
8. ka = lemi 1= le^{0}
9. sone - pufi = fi sone - pufi =\mathbf{6}
10. tepumi = sosehupupi 2^9=512
11. na + fi = puti 5+\mathbf{6}= puti

step 5.

既に確定した数と 11. より 5+6=\mathrm{puti} から \mathrm{puti}=11 となる。

ニトラ語現状
1. ka \times mi = mi 1\times0=0
2. pute = pumi 3^2=9
3. te + ka + pu + so + na = pu\times pu+ fi 2+1+3+4+5=3\times 3+6
4. sote \times le= sohupupi 4^2\times le= sohupupi
5. co + co= some co + co= some
6. naso = kahumite 5^4=625
7. pumi + some = kahumika 9+ some = kahumika
8. ka = lemi 1= le^{0}
9. sone - pufi = fi sone - pufi =6
10. tepumi = sosehupupi 2^9=512
11. na + fi = puti 5+6=\mathbf{11}

step 6.

ここで、pumi や puti など 2 音節で構成される部分について考える。与えられた式中および設問 B から抜き出した 2 音節の部分を以下に示す。

pu-so-
pumi9some?
puti11sone?
pufi?soce?

これから規則性を考えると、pu- と so- それぞれについて以下が成り立つ。

  1. pu- で始まる語の末尾の音節は 子音-i である。
  2. so- で始まる語の末尾の音節は 子音-e である。

これより、末尾の音節の子音が数を表現しており、これと今までに確定した 1 音節の数を対応させると次表のようになる。

pu- =Aso- =B
pu-m-iA+0=9so-m-eB+0=?
pu-t-iA+2=11so-n-eB+5=?
pu-f-iA+6=?so-c-eB+?_1=?_2

これより A=9 ゆえ、pu-(子音)-i は 9 + (子音に対応する数) を表すことが考えられる。

よって \mathrm{pufi}=9+6=15 となる。

(注 : 解答の上で必須ではないが、これは \mathrm{pu}^2=9 であるためである。)

ニトラ語現状
1. ka \times mi = mi 1\times0=0
2. pute = pumi 3^2=9
3. te + ka + pu + so + na = pu\times pu+ fi 2+1+3+4+5=3\times 3+6
4. sote \times le= sohupupi 4^2\times le= sohupupi
5. co + co= some co + co= some
6. naso = kahumite 5^4=625
7. pumi + some = kahumika 9+ some = kahumika
8. ka = lemi 1= le^{0}
9. sone - pufi = fi sone -\mathbf{15}=6
10. tepumi = sosehupupi 2^9=512
11. na + fi = puti 5+6=11

step 7.

step 6.9. より sone = 15 + 6 = 21 だから、step 6. の表に照らすと B=16 が分かる。よって \mathrm{some}=16 となる。

さらにこの結果と 5. より \mathrm{co}=\dfrac{16}{2}=8 が分かる。

(注 : 解答の上で必須ではないが、これは \mathrm{so}^2=16 であるためである。)

ニトラ語現状
1. ka \times mi = mi 1\times0=0
2. pute = pumi 3^2=9
3. te + ka + pu + so + na = pu\times pu+ fi 2+1+3+4+5=3\times 3+6
4. sote \times le= sohupupi 4^2\times le= sohupupi
5. co + co= some \mathbf{8}+\mathbf{8}=\mathbf{16}
6. naso = kahumite 5^4=625
7. pumi + some = kahumika 9+\mathbf{16}= kahumika
8. ka = lemi 1= le^{0}
9. sone - pufi = fi \mathbf{21}-15=6
10. tepumi = sosehupupi 2^9=512
11. na + fi = puti 5+6=11

step 8.

ここで 3 音節以上の数を考えると、全てに共通して -hu- が含まれている。他に共通するものは無いから、-hu- を桁区切りと仮定する。これにより、step 6. の表中に示した語以外に新たに以下の 2 音節の数があることが分かる。

pu- =9so- =16mi-
pumi9some16mika?
puti11sone21mite?
pufi15soce16+8
pupi9+3sose16+4

よって、\mathrm{pupi}=9+3=12\mathrm{soce}=16+8=24\mathrm{sose}=16+4=20 となる。

ニトラ語現状
1. ka \times mi = mi 1\times0=0
2. pute = pumi 3^2=9
3. te + ka + pu + so + na = pu\times pu+ fi 2+1+3+4+5=3\times 3+6
4. sote \times le= so-hu-pupi 4^2\times le=\mathbf{4}-hu-\mathbf{12}
5. co + co= some 8+8=16
6. naso = ka-hu-mite 5^4=625=\mathbf{1}-hu-mite
7. pumi + some = ka-hu-mika 9+16=\mathbf{1}-hu-mika
8. ka = lemi 1= le^{0}
9. sone - pufi = fi 21-15=6
10. tepumi = sose-hu-pupi 2^9=512=\mathbf{20}-hu-\mathbf{12}
11. na + fi = puti 5+6=11

step 9.

step 8. までの考察により、7 を除く 0 以上 8 以下の整数と、23 を 除く 9 以上 24 以下の整数の表現は分かっている。

残り判明していない 1 音節の数は le のみだから、\mathrm{le}=7 と考えられる。このとき \mathrm{sole}=16+7=23 より矛盾を生じない。

ニトラ語現状
1. ka \times mi = mi 1\times0=0
2. pute = pumi 3^2=9
3. te + ka + pu + so + na = pu\times pu+ fi 2+1+3+4+5=3\times 3+6
4. sote \times le= so-hu-pupi 4^2\times\mathbf{7}=4-hu-12
5. co + co= some 8+8=16
6. naso = ka-hu-mite 5^4=625=1-hu-mite
7. pumi + some = ka-hu-mika 9+16=1-hu-mika
8. ka = lemi 1=\mathbf{7}^0
9. sone - pufi = fi 21-15=6
10. tepumi = sose-hu-pupi 2^9=512=20-hu-12
11. na + fi = puti 5+6=11

step 10.

ニトラ語の進数を xn を正の整数とすると、今までの考察より x\gt 24 の可能性が高い。実際に 4.10. に適用すると、

4. : 16\times 7=4x^n+12
10. : 512=20x^n+12

であるから、x=25, n=1 が伴う。よってニトラ語は二十五進法で数を表すことが分かる。

step 11.

step 8. の表に戻って、mika と mite を分析する。

6.7. より、\mathrm{kahumika}=25=1\times 25^1=10_{(25)}\mathrm{kahumite}=625=1\times 25^2=100_{(25)} であるから、\mathrm{mi}=0\mathrm{ka}=1\mathrm{te}=2 より、二十五進法表記の際 0 が並ぶ個数を表していると考えられる。

以上の考察より、設問 A、設問 B、設問 C が全て解ける。

ニトラ語アラビア数字
1. ka \times mi = mi 1\times0=0
2. pute = pumi 3^2=9
3. te + ka + pu + so + na = pu\times pu+ fi 2+1+3+4+5=3\times 3+6
4. sote \times le= so-hu-pupi 4^2\times7=\mathbf{112}
5. co + co= some 8+8=16
6. naso = ka-hu-mite 5^4=\mathbf{625}
7. pumi + some = ka-hu-mika 9+16=\mathbf{25}
8. ka = lemi 1=7^0
9. sone - pufi = fi 21-15=6
10. tepumi = sose-hu-pupi 2^9=\mathbf{512}
11. na + fi = puti 5+6=11

ニトラ語アラビア数字
12. soce\mathbf{24}
13. tehupuni2\times 25+(9+5)=\mathbf{64}
14. pukihumipu(9+1)\times25^3=\mathbf{156,250}

アラビア数字ニトラ語
a. 19sope
b. 738738=1\times 25^2+4\times 25+13 よりkahusohupusi
c. 200,000,000200,000,000=20\times 25^5 +12\times 25^4 よりsosehupupihumiso

step 12.

次に 15. から 20. までの数式を解析する。前半の数式や設問中に無かった -yo- や -ya- が新たに登場しているから、これらを解読できれば良い。

まず前半で解読した数を 15. から 20. に当てはめると次表のようになる。また、step 11. までの考察により、既に少なくとも 0 以上の整数の表現は網羅されていることに注意する。

ニトラ語一部解読 (二十五進法)
15. te - miyote= kayosole2-0-yo-2=1-yo-\mathrm{N}
16. pukiyonahuna+ coyosose= sopeyosohuna\mathrm{A}-yo-55+8-yo-O=\mathrm{J}-yo-45
17. puyana = miyopusi3-ya-5=0-yo-\mathrm{F}
18. leyosome + te + coya + ya= puki7-yo-\mathrm{G}+2+8-ya + ya=10
19. teyale \times coyapu = someyasone2-ya-7\times 8-ya-3=\mathrm{G}-ya-\mathrm{L}
20. ya = miyoco\times te - puyaya = 0-yo-2\times 2 - 3-ya

参考 : 二十五進法で用いるアルファベットはそれぞれ十進法で以下のように対応する。なお、本解法例ではアルファベットのアイとイチ、およびアルファベットのオーとゼロを区別する為、アイとオーは斜体になっている (下表参照)。また、以下の解法例で特に明示 (下付きの括弧付き数値による進数の明示) が無い場合、数値は二十五進法である。

ABCDEFGH
1011121314151617
IJKLMNO
18192021222324

step 13.

15. に注目すると、減算を右辺に移項して

2=1-yo-\mathrm{N}+0-yo-2

であって、-yo- の後方に注目すると \mathrm{N}+2=10_{(25)} より何かしらの繰り上がりが発生すること、および -yo- の前方に注目すると 1+0=1 であることより、等式を成立させることを考えると、-yo- が小数を 整数部-yo-小数部 のような形で表す可能性が考えられる。

このとき二十五進数の計算に注意して、15. は、

2-0.2=1+(1-0.2)=1+0.\mathrm{N}=1.\mathrm{N}

となり成立する。

ニトラ語現状 (二十五進法)
15. te - miyote= kayosole2-\mathbf{0.2}=\mathbf{0.N}
16. pukiyonahuna+ coyosose= sopeyosohuna\mathrm{A}-yo-55+8-yo-O=\mathrm{J}-yo-45
17. puyana = miyopusi3-ya-5=0-yo-\mathrm{F}
18. leyosome + te + coya + ya= puki7-yo-\mathrm{G}+2+8-ya + ya=10
19. teyale \times coyapu = someyasone2-ya-7\times 8-ya-3=\mathrm{G}-ya-\mathrm{L}
20. ya = miyoco\times te - puyaya = 0-yo-2\times 2 - 3-ya

step 14.

16. について step 13. で考案した規則を適用すると、

\mathrm{A}.55+8.O=(\mathrm{A}+8)+0.5+0.O+0.05=I+1+0.4+0.05=\mathrm{J}.45

となり成立する。

ニトラ語現状 (二十五進法)
15. te - miyote= kayosole2-0.2=0.\mathrm{N}
16. pukiyonahuna+ coyosose= sopeyosohuna\mathbf{A.55}+\mathbf{8.}\boldsymbol{O}=\mathbf{J.45}
17. puyana = miyopusi3-ya-5=\mathbf{0.F}
18. leyosome + te + coya + ya= puki\mathbf{7.G}+2+8-ya + ya=10
19. teyale \times coyapu = someyasone2-ya-7\times 8-ya-3=\mathrm{G}-ya-\mathrm{L}
20. ya = miyoco\times te - puyaya = \mathbf{0.2}\times 2 - 3-ya

step 15.

19. に注目すると、

2\times 8=16_{(10)}=\mathrm{G}_{(25)}7\times 3=21_{(10)}=\mathrm{L}_{(25)}

であって、G と L は互いに素だから、-ya- は前後の数で分数を作る可能性が考えられる。なお、分母と分子がどちらかはまだ分からない。

step 16.

17. に注目すると、step 13. より右辺は 0.\mathrm{F}=0.6_{(10)} であるから、step 15. と併せて考えると、-ya- は 分子-ya-分母 の形で分数を表現することにすると矛盾しない。このとき明らかに 19. は成立し、さらに

 3-ya-5 = \dfrac{3}{5}=\dfrac{\mathrm{F}}{10}_{(25)}=0.\mathrm{F}=0.6_{(10)} となるので 17. は成立する。

ニトラ語現状 (二十五進法)
15. te - miyote= kayosole2-0.2=0.\mathrm{N}
16. pukiyonahuna+ coyosose= sopeyosohuna\mathrm{A}.55+8.O=\mathrm{J}.45
17. puyana = miyopusi\mathbf{\dfrac{3}{5}}=0.\mathrm{F}
18. leyosome + te + coya + ya= puki7.\mathrm{G}+2+8-ya + ya=10
19. teyale \times coyapu = someyasone\mathbf{\dfrac{2}{7}}\times\mathbf{\dfrac{8}{3}}=\mathbf{\dfrac{G}{L}}
20. ya = miyoco\times te - puyaya = 0.2\times 2 - 3-ya

step 17.

最後に 18. について、分子か分母が省略されている coya と ya 以外を計算すれば、

\mathrm{coya}+\mathrm{ya}=\mathrm{puki}-\mathrm{leyosome}-\mathrm{te}
=\mathrm{A}-7.\mathrm{G}-2=0.9=\dfrac{9}{10}_{(25)}

より、coya と ya の分母が等しく x で、ya の分子を y であるとすると、

\dfrac{8+y}{x}=\dfrac{9}{10}_{(25)}
10_{(25)}(8+y)=9x
25_{(10)}(8_{(10)}+y) = 9_{(10)}x

より x は 25(10) の倍数であるので、k を正の整数として x=25_{(10)}k とおけて、このとき 8+y=9k より

y=9k-8

となる。

step 18.

20. より ya と puya について、step 17. と同じ文字の置き方をすれば、適切に移項して、

\dfrac{3+y}{x}=0.4=\dfrac{4}{10}_{(25)}
25_{(10)}(3+y)=4x=4\times 25_{(10)}k
3+y=4k
y=4k-3

step 17. より 9k-8=4k-3 だから、k=1, x=25, y=1 が従う。

これより、分母は十進法で 25 に、分子は 1 に等しいときそれぞれ省略されることが分かり、残った全ての設問が解ける。

ニトラ語アラビア数字 (二十五進法)
15. te - miyote= kayosole2-0.2=0.\mathrm{N}
16. pukiyonahuna+ coyosose= sopeyosohuna\mathrm{A}.55+8.O=\mathrm{J}.45
17. puyana = miyopusi\dfrac{3}{5}=0.\mathrm{F}
18. leyosome + te + coya + ya= puki7.\mathrm{G}+2+\mathbf{\dfrac{8}{10}}+\mathbf{\dfrac{1}{10}}=10
19. teyale \times coyapu = someyasone\dfrac{2}{7}\times\dfrac{8}{3}=\mathrm{\dfrac{G}{L}}
20. ya = miyoco\times te - puya\mathbf{\dfrac{1}{10}}=0.2\times 2 - \mathbf{\dfrac{3}{10}}

ニトラ語アラビア数字
21. fiyale\mathbf{\dfrac{6}{7}}
22. miyopusi\mathbf{0.52}
23. yate\mathbf{\dfrac{1}{2}}

数式値(アラビア数字)値(ニトラ語)
24. na \times coyana - co =0mi
25. fiya \times nayaco \times yapu =\dfrac{1}{20}yasose
26. kahusose \times coyapufi +( puso - miyona \times na )\times kahumika =2024puhunahusoce