見出し画像

MAKE10を完成させたい②

前回はベルヌーイ数無双であっけなく終わってしまったため、レギュレーションを見直して再チャレンジします。

今回のレギュレーション

このお題の主目的は「ナンバープレートで出会いうる数字で10の作り方をコンプリートする」ことであり、通常のMAKE10とは少し傾向が異なるので改めてレギュレーションを書き起こします。

  • 原則として、四則計算(+、-、×、÷)のみで10を作る

  • 数字の結合は禁止(1,2を12として使用できない)

  • 各数字の並べ替えは可

  • 括弧、括線のような式に表すうえでの記号の使用は可

  • 指数関数やべき乗、根号など数学上の記号は、数字を含まないものであれば可

また、以下の物は使用不可とします。

  • 円周率や自然対数などの定数:見た目上は数字を含まないが数ではあるため

  • ガウス記号等の丸め処理:美しくないため

  • ベルヌーイ数:3以上奇数を0にし、1を-1/2にする性能は強力すぎるため

新しい仲間たち

今回はベルヌーイ数を封じられたので、前回上げた以外の数字変換術を用意しました。

■逆三角関数
結果に円周率が入ってしまうためこれの処理が必要となりますが、1,2などの扱いにくい数字を動かせるため有効な場面が出てきそうです。
なお、sin^-1のような表記は数字を含んでしまいレギュレーション違反となるため、今回はarcsinのような記載を採用します。
arcsin(1/√2)=arccos(1/√2)=π/4, arcscos(-√3/2)=5π/6など正弦・余弦の逆関数は使えないことはないが使いにくいです。
一方、正接の逆関数は入力する数の定義域が無制限なうえに、arctan1=π/4など1から4という数字を生成しうるのでなにかと使えそう。
また、円周率の処理は基本的にはarccos(-1)=πが使えそうです。

逆三角関数と三角関数の組み合わせで円周率をそもそも発生させない運用も可能です。
・sin(arccos x)=cos(arcsin x)=√(1-x^2) → x=1/2を√3/2など
・sin(arctan x)=x/√(1+x^2) → x=1を1/√2、x=2を2/√5、x=3を3/√10など

と、ここまでは前置きでした。
実は今回、余接を使って1を好きな数字に変換する方法を思いつきました。
まず、sin(arccot x)=1/√(1+x^2) であることから、x=1のとき1/√2が得られます。
また、tan(arccot x)=1/xであることから、x=sin(arccot1)=1/√2のとき√2が得られます。
式をまとめるとtan(arccot(sin(arccot √x)))=√(x+1)となることからも分かる通り、これを繰り返すと1から√2,√3,√4,…を無限大まで得ることができます。
また、tan(arcsec √x)=√(x-1)であることから、xが整数であれば入れ子にしてあらゆる数を0まで降下させることができます。
つまり、これら2つの変換を組み合わせることであらゆる整数から10を作れることになってしまいました。
最期の最後、手詰まりになったらこの手を使おうと思います。
(自信満々に書いていますけど、余接なんて学生時代もほぼ使ったことがないので上の式が正確なのかは正直なんともいえないです。)

一応、他にも以下の変換は使い道があるので後々使用します。

  • tan(arcsec2)=√3

  • cos(arccot2)=1/√5

  • tan(arcsec√5)=2

  • sin(arccot7)=√2/10

  • sin(arccot√8)=1/3

■リーマンゼータ関数
思い付きはしたのですが、この子は半分ベルヌーイ数みたいなものなのでレギュレーション的に今回は使用しないことにします。
一応、ζ(0)=-1/2による0→2の変換、円周率が出てきてしまうがζ(2)=π^2/6、負の偶数の代入時に0になる(自明な零点)などがあります。

穴埋め作業①:1桁数字→1桁数字変換

ナンバープレートにおける10が作成不可能な組み合わせは以下の通りです。

0001 0002 0003 0004 0005 0006 0007 0008 0009 0011 0012 0013 0014 0015 0016 0017 0018 0022 0023 0024 0026 0027 0029 0033 0034 0035 0036 0038 0039 0044 0045 0047 0048 0049 0056 0057 0058 0059 0066 0067 0068 0069 0077 0078 0079 0088 0089 0099 0111 0112 0113 0114 0116 0117 0122 0123 0134 0144 0148 0157 0158 0166 0167 0168 0177 0178 0188 0222 0233 0236 0269 0277 0279 0299 0333 0335 0336 0338 0344 0345 0348 0359 0366 0369 0388 0389 0399 0444 0445 0447 0448 0457 0478 0479 0489 0499 0566 0567 0577 0588 0589 0599 0666 0667 0668 0677 0678 0689 0699 0777 0778 0788 0799 0888 1111 1112 1113 1122 1159 1169 1177 1178 1179 1188 1399 1444 1499 1666 1667 1677 1699 1777 2257 3444 3669 3779 3999 4444 4459 4477 4558 4899 4999 5668 5788 5799 5899 6666 6667 6677 6777 6778 6888 6899 6999 7777 7788 7789 7799 7888 7999 8899
1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 22 23 24 26 27 29 33 34 35 36 38 39 44 45 47 48 49 56 57 58 59 66 67 68 69 77 78 79 88 89 99 111 112 113 114 116 117 122 123 134 139 144 148 149 157 158 159 166 167 168 169 177 178 179 188 189 199 222 225 228 233 236 237 246 255 256 258 259 269 277 278 279 288 299 333 335 336 337 338 344 345 346 347 348 355 357 359 366 369 377 378 388 389 399 444 445 446 447 448 455 457 466 467 469 478 479 489 499 555 556 558 559 566 567 577 588 589 599 666 667 668 677 678 689 699 777 778 788 799 888

ここから、前回の変換のうちベルヌーイ数を除いた変換を用いて数字の1対1変換を行い、リストに無い組み合わせになれば10が作れるということなので、そのような数字の組を抜いていきます。
変換は以下のものを使用します。

  • 0→1(階乗)

  • 3→6(階乗)

  • 4→2(べき根)

  • 4→6(素数階乗)

  • 4→8(二重階乗)

  • 9→3(べき根)

変換の結果、残った不可能組み合わせは以下の通りです。

0001 0002 0011 0012 0022 0077 0111 0112 0122 0177 0178 0666 0667 0677 0777 1111 1112 1122 1177 1178 1188 1666 1667 1677 1777 2257 5668 5788 6666 6667 6677 6777 6778 6888 7777 7788 7888
1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 22 23 26 27 29 33 35 36 38 39 47 56 57 58 59 66 67 68 69 77 78 88 89 99 111 112 113 116 117 122 157 158 166 167 168 177 178 188 222 225 228 255 256 258 277 278 288 333 336 355 357 366 369 377 378 455 478 555 556 558 559 566 567 577 588 666 667 668 677 678 699 777 778 788 888

穴埋め作業②:1桁数字2つ→1桁数字1つ変換

こちらは前回同様、以下の変換でさらに不可能組み合わせを減らしていきます。

  • 隣接する2つの数字→大きい方の数字(階乗÷階乗)

  • 同じ数字→元の数字(積のべき根)

  • 2,3→9(階乗)

  • 2,8→3(対数)

変換の結果、残った不可能組み合わせは以下の通りです。

0001 0002 0011 0012 0022 0077 0111 0112 0122 0177 0178 0666 0667 0677 0777 1111 1112 1122 1177 1178 1666 1667 1677 1777 6666 6667 6677 6777 6778 7777 7788 7888
1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 22 23 26 27 29 33 35 36 38 39 47 56 57 58 59 66 67 68 69 77 78 88 89 99 111 112 113 116 117 122 157 158 166 167 168 177 178 188 222 256 258 277 333 336 355 357 366 378 556 558 559 566 567 577 588 666 667 668 677 678 699 777 778 788 887

穴埋め作業③:階乗・根号のみで個別対応

ここからの減少は緩やかなので、個別で見ていきます。
まずは階乗や根号のような簡単な記号で対処できないか考えてみます。

  • 0022 → 0!+2^(0!+2);0122,1122も同様

  • 0077 → √(0!+0!+7)+7;0177,1777も同様

  • 0178 → √(0!×1+8)+7;1178も同様

  • 6778 → 7+√(8+7-6)

  • 7788 → 7+√(8+8-7)

  • 7888 → 7+√(8÷8+8)

  • 178→ √(1+8)+7;278も同様

  • 256,258,355,357,378,559 → 2×5に集約できる(割愛)

残りは特殊な階乗や組み合わせ/重複組み合わせ、三角関数を使わないと難しそうです。

0001 0002 0011 0012 0111 0112 0666 0667 0677 0777 1111 1112 1666 1667 1677 1777 6666 6667 6677 6777 7777
1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 22 23 26 27 29 33 35 36 38 39 47 56 57 58 59 66 67 68 69 77 78 88 89 99 111 112 113 116 117 122 157 158 166 167 168 177 188 222 333 336 366 556 558 566 567 577 588 666 667 668 677 678 699 777 778 788 888

穴埋め作業④:6の処理

残りのリストを見ていると、6の多さが目につきます。
特に、3,4,9は単体で6に変換できるため、(潜在的に)6を含む数字を重点的に処理していきます。
主に以下の変換が使えそうです。

  • 6!=6×5×4×3×2×1=720

  • 6!!=6×4×2=48

  • 6!!!=6×3=18

  • 6!!!!=6×2=12

  • 6#=5#=5×3×2=30

  • 6C2=15

  • 6C3=20

これらを用いて以下のように10を導出します。

  • 0667 → 6!!!!-0!+6-7;1667も同様

  • 0666 → 6!!!!-0!-6÷6;0677,1666,1677も同様

  • 6666 → 6+6-6!!!!÷6

  • 6667 → 6×6÷6!!!!+7

  • 6677 → 6!!!!+6!!!!-7-7

  • 23 → (3!)!!!!-2;26も同様

  • 33 → (3!)#÷3;39,36,69,99,699も同様

  • 38 → (3!)!!!-8;68,89,167,168も同様

  • 67 → 6!!-7!!!!;677,6777,7777も同様

  • 116 → 6!!!!-1-1

  • 333 → (3!)!!!!-(3!)!!!!÷3!;336,366,666も同様;(3!)!!÷3-3!,((3!)!!-(3!)!!!)÷3,(3!-3)H3などの別解もあり

  • 566 → 5×6!!!!÷6

  • 567 → 6!!!!+5-7;668も同様

  • 667 → 6!!!÷6+7

すこし処理しきれない6も残ってしまいました。

0001 0002 0011 0012 0111 0112 0777 1111 1112 1777
1 2 3 4 5 6 7 8 9 11 12 13 14 15 16 17 18 22 27 29 35 47 56 57 58 59 66 77 78 88 111 112 113 117 122 157 158 166 177 188 222 556 558 577 588 678 777 778 788 888

穴埋め作業⑤:5の処理

5!!!=10を用いて、1組の数字を5に集約して処理していきます。
(これは個人的な好みの問題なのですが、n重階乗は階乗する数字がnで割り切れる or 1余る数字出ないとなんとなく美しくないので、今回も5!!!を使用するのは終盤にしています。)
実質MAKE5になりましたが、以下のように5に集約します。

  • 5,14,15,16,27,29,47,117,122,158,558,577,588,678は簡単なので割愛

  • 0002 → 0!+0!+0!+2;0012,0112,1112も同様

  • 0777 → 7-7÷7-0!;1777も同様

  • 13 → 3!-1;112,113,0001,0011,0111,1111も同様

  • 18 → (tan(arccot(sin(arccot√8))))!-1;188,888も同様

  • 22 → (cos(arccot2))^(-2)

  • 35 → 5#÷3!;56,59,157,166,556も同様

  • 57 → 7-tan(arcsec√5)

  • 66 → 6#÷6

  • 77 → 7!!÷7!!!!;別解として√(sin(arccot√7))÷sin(arccot7)=5など

  • 78 → √(7!!-8!!!);別解として8!!!!!-7!!!!!=10など

  • 111 → arccos(-1)÷arctan1+1

  • 222 → (tan(arcsec2))^2+2

  • 177 → 1+7!!!÷7

  • 777 → 7-7!!!!!÷7

  • 788 → 8-7!!!!÷7

4桁の組がすべて消えました。
また、1桁の数字を除いて、3,4,6,9が消えました。

1 2 3 4 6 7 8 9
11 12 17 58 88
778

穴埋め作業⑥:個別対応

残りは個別処理です。

  • 17 → sin(arccot1)/sin(arccot7)

  • 58 → tan(arcsec√5)+8

  • 88 → 8!!!÷8

  • 778 → 7!!!+7!!!!!-8!!!!(見た目が頭悪そうで超好き)

これで、5以外の1桁の数字、11,12の組み合わせ以外で10を作る方法が見つかりました。
5以外は数字ひとつで10を作る方法が思い至らないし、11,12の組で10を作ることもできなさそうなので、この10個の数は先述の逆三角関数を使った変換で片付けましょう。
つまり、tan(arcsec x)=√(x^2-1)の入れ子を用いてxに2から9のべき根を代入して1に変換し、tan(arccot(sin(arccot √x)))=√(x+1)の入れ子を用いて√100まで増加させます。

まとめ

以上でナンバープレートの数字はどのパターンでも10が作れそうだということがわかりました。
逆三角関数の計算など数学的に正しいか自信のない変換もあるのですが、ひとまずは以上でMAKE10が完成したということにしたいと思います。
お疲れ様でした。

いいなと思ったら応援しよう!