JavaScript

32bit16進数の文字列をint[32]に変換

32bit16進数の文字列をint[32]に変換

int[32]は要素数32のint型配列。

Solidityのkeccak256()は本当に分散した値を生成しているのか確認した。
結果はOK。

keccak256()の戻り値はbytes32。
keccak256()を入力をずらしながら1000回実行して、
1000個のbytes32文字列を取得して、
JavaScriptで全部8bitずつ数値に変換して、
出現頻度を調べた。

告白成功確率 20% の男がひとりの彼女を 80% 以上の確率で獲得できる告白の回数 : 8回

告白成功確率 20% の男がひとりの彼女を 80% 以上の確率で獲得できる告白の回数 : 8回

この計算は会社員時代に業務時間中にさんざん計算練習していた課題。
いろいろ感動的な結果が得られる。
感動ポイント
1.
試行回数を増やすほど解析解と計算解の差がなくなる
2.
告白成功確率は60%から70%に上げてもそんなにいいことはないが(2回→2回)
、5%と10%では雲泥の差である(挑戦回数 32回→16回)

だから、現在勝率が低いひとほど努力をする価値が大きいというわけ!!

もちろん、彼女の獲得だけにとどまらない。
会社経営が成功する確率とか、ね。

そして、現実世界では、成功確率は挑戦毎に一定ではない←重要!!!

きつくないcolor_id一覧を表示する(改善)

きつくないcolor_id一覧を表示する(改善)

function generateSafeColorIds(num)
↑この関数にした

きつくないcolor_id一覧を表示する

きつくないcolor_id一覧を表示する

きつい色をNGにするアルゴリズム。pythonのコードをjsに書き換えた

きつい色をNGにするアルゴリズム。pythonのコードをjsに書き換えた

JavaScriptのクロージャ

JavaScriptのクロージャ

JavaScriptのクロージャをユズノハのことばで言うと
関数が定義された環境を保持できる仕組み。かな。
関数(func2)が定義された環境(func1)。

ユズノハはJavaScriptのクロージャを勉強していて
鈴木光司のリングを連想した。

リング3部作をざっくり説明すると、
現実世界でシミュレートしているリングワールドで生まれたタカヤマリュウジを
リングワールドから現実世界に召喚して、現実世界に蔓延しているリングウィルスの抗体をタカヤマリュウジから取り出す話。

ここで、タカヤマリュウジがリングワールドのクロージャになるみたいな。
同様にヤマムラサダコもクロージャだ。
以下サンプルコード。

JavaScriptでサイコロを作った

JavaScriptでサイコロを作った

JavaScriptでquicksort(クイックソート)

JavaScriptでquicksort(クイックソート)

整数と1byte配列の相互変換(ビッグエンディアン)

整数と1byte配列の相互変換(ビッグエンディアン)

callback関数は、呼び出し先の関数の中で呼び出される関数

callback関数は、呼び出し先の関数の中で呼び出される関数