2024/6/29日に再度emojin Playgroundへ行ってみたところ、while文と代入が追加されていたので、ちゃんとしたNewton法を実装してみました。その節はこちら。
目次
ついこの前、Twitterでemojinという絵文字で書くプログラミング言語があるというtweetが流れてきたので、せっかくなのでNewton法を実装してみることにした。
ここで使う知識
emojinでは数字も絵文字で表現する。例えば1は1️⃣
、10は1️⃣0️⃣
といった具合だ。
変数を宣言し、代入するには🔖hoge🫵huga⛔️
で行う。なお、どうやら宣言をしないで普通に代入(?)するのはできないらしく、後述するfor文で回そうとしたときにはエラーを吐かれた。以下エラーコードとソースコード。
🔖🥺🫵0️⃣.0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣1️⃣⛔️
🔖🥴🫵2️⃣⛔️
🔖😇🫵1️⃣0️⃣⛔️
♻️👽🌀0️⃣➰1️⃣0️⃣0️⃣0️⃣🔜
🤔🥴➖😇⚖️👉🥺💫🥴➖😇👈⚖️🥺🔜
😇🫵🥴⛔️
🥴🫵🥴➖🥴➗2️⃣⛔️
🔚
🔚
📢🥴⛔️
[文] 行 9, 列 9:予期しないトークンです。繰り返し構文、条件分岐構文、出力構文、代入構文のいずれかが必要です(2)
🔖🥺🫵0️⃣.0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣1️⃣⛔️
🔖🥴🫵2️⃣⛔️
🔖😇🫵1️⃣0️⃣⛔️
♻️👽🌀0️⃣➰1️⃣0️⃣0️⃣0️⃣🔜
🤔🥴➖😇⚖️👉🥺💫🥴➖😇👈⚖️🥺🔜
🔖😇🫵🥴⛔️
🔖🥴🫵🥴➖🥴➗2️⃣⛔️
🔚
🔚
📢🥴⛔️
[実行時エラー] 行 9, 列 10:変数 😇 はすでに存在します
また、while文を使用しなかったのは、while文がそもそも用意されてなさそうだったからである(私の確認不足でもしかしたらあるかも(?))。
また、for文は次の様に書くことができる。以下は、1から100までの数を出力するプログラムである。
♻️👽🌀1️⃣➰1️⃣0️⃣1️⃣🔜
📢👽⛔️
🔚
1
2
3
...(略)
100
実際にNewton法を実装してみたよ
for文が使えなかったので、for文で書くべきところを全部手で書くという地獄に陥った。
🔖👽🫵2️⃣⛔️
🔖🥴🫵2️⃣⛔️
🔖🥴🥴🫵🥴➖🥴➗👽➕1️⃣➗🥴⛔️
🔖🥴🥴🥴🫵🥴🥴➖🥴🥴➗👽➕1️⃣➗🥴🥴⛔️
🔖🥴🥴🥴🥴🫵🥴🥴🥴➖🥴🥴🥴➗👽➕1️⃣➗🥴🥴🥴⛔️
🔖🥴🥴🥴🥴🥴🫵🥴🥴🥴🥴➖🥴🥴🥴🥴➗👽➕1️⃣➗🥴🥴🥴🥴⛔️
🔖🥴🥴🥴🥴🥴🥴🫵🥴🥴🥴🥴🥴➖🥴🥴🥴🥴🥴➗👽➕1️⃣➗🥴🥴🥴🥴🥴⛔️
📢🥴🥴🥴🥴🥴🥴⛔️
実行結果
1.414213562373095
できた。v( ̄Д ̄)v イエイ
6/29追記、ちゃんと実装してみた!!!
今日(2024/6/29)、もう一度見てみたらwhile文と代入ができるようになったので、ちゃんとしたNewton法を実装してみました。
🔖🥺🫵0️⃣.0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣1️⃣⛔️
🔖🥴🫵2️⃣⛔️
🔖😇🫵1️⃣0️⃣⛔️
🔁🥴➖😇👈🥺💫😇➖🥴👈🥺🔜
😇🫵🥴⛔️
🥴🫵🥴➖🥴➗2️⃣➕1️⃣➗🥴⛔️
🔚
📢🥴⛔️
1.414213562373095
これを利用して、$\sqrt{2}$から$\sqrt{100}$までをNewton法で近似してみました。
🔖🥺🫵0️⃣.0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣0️⃣1️⃣⛔️
🔖🥴⛔️
🔖😇⛔️
♻️👽🌀2️⃣➰1️⃣0️⃣1️⃣🔜
🥴🫵5️⃣⛔️
😇🫵1️⃣0️⃣⛔️
🔁🥴➖😇👈🥺💫😇➖🥴👈🥺🔜
😇🫵🥴⛔️
🥴🫵🥴➖🥴➗👽➕1️⃣➗🥴⛔️
🔚
📢🥴⛔️
🔚
1.414213562373095
1.7320508075688799
2.0000000000000067
2.2360679774998022
2.449489742783195
2.6457513110646094
2.8284271247462156
3.000000000000031
3.1622776601684146
3.316624790355437
3.464101615137801
3.6055512754640446
3.7416573867739937
3.8729833462074743
4.000000000000068
4.123105625617732
4.24264068711936
4.358898943540752
4.472135954999666
4.5825756949559295
4.690415759823531
4.795831523312818
4.898979485566464
5
5.099019513592667
5.196152422706512
5.291502622129058
5.38516480713437
5.477225575051525
5.567764362829878
5.656854249492229
5.744562646537867
5.830951894845135
5.916079783099459
5.999999999999832
6.082762530298043
6.16441400296879
6.244997998398224
6.324555320336566
6.403124237432648
6.480740698407664
6.557438524301806
6.633249580710589
6.708203932499142
6.782329983125056
6.855654600400816
6.928203230275284
6.999999999999758
7.071067811865229
7.141428428542609
7.2111025509277225
7.280109889280257
7.348469228349268
7.416198487095404
7.483314773547607
7.549834435270469
7.615773105863632
7.681145747868319
7.74596669241455
7.810249675906367
7.874007874011519
7.937253933193465
7.9999999999997
8.062257748298238
8.12403840463566
8.18535277187212
8.246211251235005
8.306623862917744
8.366600265340413
8.426149773176022
8.48528137423824
8.544003745317168
8.60232526704225
8.660254037844018
8.717797887080964
8.774964387391785
8.831760866327496
8.888194417315205
8.944271909998772
8.999999999999622
9.055385138137023
9.110433579143933
9.165151389911252
9.219544457292496
9.273618495495269
9.32737905308842
9.380831519646419
9.43398113205622
9.486832980504724
9.539392014169039
9.591663046625017
9.6436507609925
9.695359714832243
9.746794344808528
9.79795897113222
9.848857801795669
9.89949493661119
9.949874371065759
9.99999999999954
できた。v( ̄Д ̄)v イエイv( ̄Д ̄)v イエイ