search
他カテゴリ

超越コボラーの逆襲

sphiarno-88's icon'
  • sphiarno-88
  • 2022/01/21 12:49

前回は、COBOLでコラッツ予想をやってみました。しかし、その成果たるや非常に残念なものになりました💧

 

上を見上げて駄目なら、下も見る。ということで、COBOLに負けそうな言語を探してみました。コボラーの逆襲です。「なでしこ」という日本語で入力できる言語を発見しました🌰

 

これは、これは…どうも見た感じ、学習用の「トイ言語」感たっぷり。この言語は、事務女子がターゲットなのか、事務女子をターゲットにした「オタク男子」がターゲットなのか、そのあたりはよくわかりませんが、これならCOBOLでやっつけれそうです💪

 

🌸なでしこさん登場🌸

公正性を保つために、標準のアルゴリズムで書いてみます。事務女子だからって、ハンデもあげないし遠慮はしないぞ、うへへへ…😎

そして、これが「なでしこさん」のコードだ。(実装は、実は3種類ありますが、大人の事情でまだ秘密です)萌え萌え~😍

●(Nで)コラッツ関数とは
  距離は、0。
  !(N=1)の間、繰り返す
    #Nを表示。
    距離は、距離+1。
    もし、(N%2)が0ならば
      Nは、N÷2
    違えば
      Nは、N×3+1
    ここまで。
  ここまで。
  距離を戻す。
ここまで。

●コラッツプログラム実行とは
  条件数は、1。
  (条件数=1)の間、繰り返す
    「いくつのコラッツ関数?(0:まとめて)」と尋ねて、指定数へ代入。
    もし、指定数=0ならば
      「それじゃあいくつまでのコラッツ関数?」と尋ねて、マックスへ代入。
    違えば
      時間ミリ秒取得して開始時刻に代入。
      結果は、コラッツ関数(指定数)。
      時間ミリ秒取得して終了時刻に代入。
      計算時間は、整数変換((終了時刻-開始時刻)×1000)。
      「{指定数}の距離は{結果}です(かかった時間:{計算時間}マイクロ秒)」と言う。
      条件数は、0。
    ここまで。

  もし、条件数=0ならば
    「もう一度やる?(0:NO、1:YES)」と尋ねて、条件数へ代入。
  違えば
    合計は、0。
    時間ミリ秒取得して開始時刻に代入。
    Xを1からマックスまで繰り返す
      結果は、コラッツ関数(X)。
      #「{X}の距離は{結果}です」と言う。
      合計は、(合計+結果)%1000000007。
    ここまで。
    時間ミリ秒取得して終了時刻に代入。
    計算時間は、整数変換(終了時刻-開始時刻)。
    「{マックス}までの総距離の暗号は{合計}です。(かかった時間:{計算時間}ミリ秒)」と言う。
    条件数は、0。
    ここまで。
  ここまで。
  「お疲れ様でした🌸」と言う。
ここまで。

コラッツボタン=「コラッツ開始」のボタン作成。
コラッツボタンをクリックした時には
  コラッツプログラム実行。
ここまで。

 

な~にが「お疲れ様でした🌸」か。お前は、今からケチョンケチョンになるんだ。うひゃひゃひゃひゃ。ということで、実行してみちゃうぞぉ~。「コラッツ開始」をポチッとな❗

Content image

 

え~いっ!!むちゃくちゃな数字を突っ込んでやるぅ~❗

 

Content image

 

むっ!…むむむっ!!マイクロ秒単位とは何事か!

ま、まあ数字はひとつだし、なかなかやるようだが、たいしたことはないだろう…今度こそ終わりだ。無理かもしれないが、十万まで全部をつっこんでやるぞうぅ!!ひゃっ、ひゃっ、ひゃ!え~い!!

 

Content image
答え合わせの値(暗号)は一致してますので、ちゃんと計算しています。

 

な、なんだとぉ~~!!これは、COBOLよりも速いが、よく見るとPython3(1120ms)よりも速いではないか。ど、どういうことだ。俺は…俺は、こんな事務女子に負けてしまったのかあぁ……😵

 

……ということで、超越コボラーは「なでしこさん」をケチョンケチョンにするどころか、逆にクールにケチョンケチョンにされてしまうのでした👩

それでは、大人の事情…種明かしをお話すると、これは実質のジャバスクリプトで、ノードJS上で実行したものです。実装が3つというのは(なでしこ1も含めるともう1つありますが)、ノードJS版と、あとの残りはウェブブラウザー版と、PHP版があります。そりゃ、速いや🚄

ノードJS版は、エレクトロンがうんにゃらかんにゃらというやつです。いわゆるWebアプリケーションを、デスクトップでマルチプラットフォームに扱うためのものです。マックが、ウインドウズが、リナックスが、という闘争は今後も続きそうですが、Webアプリケーションからは平等のようです🌞

こちらが、ウェブブラウザ版の実行状況です。

Content image

 

そして、こっちがPHP版の実行状況です。

Content image

 

Content image

 

簡易ブラウザー版なので、こちらから確かめることができます。ウェブプログラミングで重要な、変数の型チェックはしてないので、数値以外は入力しないでね。ブラウザがフリーズします(後でエラー表示されます)❌

 

😂仕方ないので…😿

仕方がないので、SCRATCHをコテンパンにして、なんとかCOBOLに活路を見いだしてみたいと思います。SCRATCHって、なんなんでしょう?JSぽいですがRubyとかなのかな??似たものにスモウルビィというものがあります。Rubyに変換されているものを見れるので、学習用としてはこちらの方がよいかもしれません(なでしこさんは動作環境がいくつもあるので、導入までが意外に面倒です…)😰

 

 

 

Smalrubyは、何でも小学生向けの環境で文科省公認っぽいですが、それにしても今時の小学生はすごすぎます…

SCRATCHの場合、0については、0なのか、「0」なのか、NaNなのか、なんなのか(なんだそりゃあ)、よくわからないという微妙なはまりポイントがあったので、そこだけ等号(:=0)にせず不等号にすることで解消しました。画面からは見えませんが、「=か?==か?===か?」みたいなのが影響しているのでしょうね❓

Content image
ベンチマークしないときは、ネコ?を走らせてました。

 

Content image
それほど遅くない

なんとか、COBOLの面目を保つことはできました。が、ビジュアル的に走らせながら計算させるのは楽しいですね。最近のコンパイラーやパッケージマネージャーなどの実行時間がかかるものは、プログレスバーもそうですが、コマンドラインに対していろいろなビジュアル表現があるので、こういうのは大事かもです🏃

なお、いつもはUbuntuからの記事が多いのですが、今回はWindowsです。Windows11では、PowerShellにかわりTerminalがデフォルトのコマンドライン環境(というよりはそれらをまとめた画面)になるようですが、ビジュアル面にもいろいろこだわっているようです👢

この記事のトップ画像がそれになるのですが、コマンドラインの背景に画像を設定、フォントをPlemolJPのNerdFontモデルに、飾りはOhMyPosh(何じゃそりゃですが、OhMyZshの変形らしいです)で、レトロスタイルを加えネオンちっくにしてみました✨

 

 

「まあ、こういうのは大事ですが、使い手がね…」なんて、言わないでね🎂

 

☕~ おしまい ~☕

Supporter profile icon
Article tip 1人がサポートしています
獲得ALIS: Article like 189.21 ALIS Article tip 7.10 ALIS
Article registration Article registration
sphiarno-88's icon'
  • sphiarno-88
  • @sphiarno-88
くるくる回る人

投稿者の人気記事
コメントする
コメントする
こちらもおすすめ!
Eye catch
他カテゴリ

警察官が一人で戦ったらどのくらいの強さなの?『柔道編』 【元警察官が本音で回答】

ふたひい@web3 2020/05/16
Like token Tip token
114.82 ALIS
Eye catch
トラベル

無料案内所という職業

bansu 2019/06/11
Like token Tip token
84.20 ALIS
Eye catch
他カテゴリ

オランダ人が語る大麻大国のオランダ

Jimmy 2018/12/21
Like token Tip token
46.20 ALIS
Eye catch
グルメ

バターをつくってみた

モミジ 2021/02/18
Like token Tip token
127.90 ALIS
Eye catch
クリプト

17万円のPCでTwitterやってるのはもったいないのでETHマイニングを始めた話

nnppnpp(んぺー) 2021/09/08
Like token Tip token
46.60 ALIS
Eye catch
クリプト

約2年間ブロックチェ-ンゲームをして

kaya 2021/10/06
Like token Tip token
61.20 ALIS
Eye catch
トラベル

梅雨の京都八瀬・瑠璃光院はしっとり濃い新緑の世界

こすもす 2021/05/25
Like token Tip token
216.64 ALIS
Eye catch
他カテゴリ

警察官が一人で戦ったらどのくらいの強さなの?『柔道編』 【元警察官が本音で回答】

ふたひい@web3 2020/05/16
Like token Tip token
114.82 ALIS
Eye catch
クリプト

ジョークコインとして出発したDogecoin(ドージコイン)の誕生から現在まで。注目される非証券性🐶

昆布森ちゃん 2021/01/19
Like token Tip token
38.31 ALIS
Eye catch
トラベル

わら人形を釘で打ち呪う 丑の刻参りは今も存在するのか? 京都最恐の貴船神社奥宮を調べた

こすもす 2021/08/07
Like token Tip token
486.35 ALIS
Eye catch
クリプト

Bitcoin史 〜0.00076ドルから6万ドルへの歩み〜

大田コウキ 2021/04/06
Like token Tip token
947.13 ALIS
Eye catch
他カテゴリ

SASUKEオーディションに出た時の話

Taka 2021/01/22
Like token Tip token
35.87 ALIS