動画の数字を、自分の手元で確かめる

sim-lab — 「ひとつ変えてみる」のシミュレーション

YouTube チャンネル「ひとつ変えてみる」で使ったシミュレーションのコード・固定した乱数シード・結果 JSONを、回ごとに置く頁です。動画に出てくる結果の数字は、ここにある結果 JSON から取っています。

音声と映像の制作用のコード(描画・制作の手順・台本の生成器)は、この頁には置いていません。ここにある物だけで作り直せるのは、シミュレーションの数字(結果 JSON と結果表)です。動画そのものは作り直せません。

回の一覧

回題材版
ひとつ変えてみる No.01 / sim-lab ep01シェリングの分居モデル(Schelling 1971)ep01 版(下のファイル一式。各ファイルの sha256 つき)
ひとつ変えてみる No.02 / sim-lab ep02グラノヴェッターのしきい値モデル(Granovetter 1978)ep02 版(下のファイル一式。各ファイルの sha256 つき)
ひとつ変えてみる No.03 / sim-lab ep03投票者モデル(Clifford & Sudbury 1973)ep03 版(下のファイル一式。各ファイルの sha256 つき)
ひとつ変えてみる No.04 / sim-lab ep04Braess のパラドックス(Braess 1968・数の例は Easley & Kleinberg 2010)ep04 版(下のファイル一式。各ファイルの sha256 つき)

動画の説明欄の「ep01 版」「ep02 版」「ep03 版」「ep04 版」は、この頁の各一覧を指します。同じ版かどうかは sha256 で確かめられます。

ep01 版のファイル

.py と .md は、この頁では末尾に .txt を付けて置いています(中身は1バイトも同じなので、sha256 の値も同じです)。下の表の sha256 は元のファイル名のときの値です。

パス何かバイトsha256
sim/schelling.pyモデル本体と全実験。世界の定義・動かし方・測り方がこの1ファイルにあります29,347b1d365eff621c92420032fa46be5182f5c97893af69ea6e8027d7421a560c59a
sim/make_report.py結果 JSON から結果表(report/results.md)を作る9,46065948504949d2780aab5185d8963f602c5839dd9d2ccf574f0d16ecec432dfb1
sim/predictions.json回す前に書いた予想(13個)。書いた時刻(written_at)は当社の自己申告です3,11955e0277acd1e471dc4d6eb4773f38a83911d1253fbcf9cd3c00ce4ac178c0223
sim/results/baseline.json結果(全条件・全シード)43,73915027c9db964c669a76b128c5b86ad2ee386a6fa428bdf68750beb27e24600fa
sim/results/colors_shape.json結果(全条件・全シード)86,272b9968711d6653d4c0de4b20b83a1a25e64966587386f8d30f05648a1e8dd6687
sim/results/display_finals.json結果(全条件・全シード)512,1910ef47c2bbb9ca6fffefa229b38535e2f4088ba8eee45db1f50883c53f0a156c8
sim/results/display_run_colors3_bounded.json結果(全条件・全シード)177,7333e23bee322d4d18ecc4d5bb8d82e266c724d52996957b8a21fa8fb7e67922027
sim/results/display_run_indiff030.json結果(全条件・全シード)126,337545dd4bce9c381545e41410c61da6a63f53ab2356956eedf89254f743b95dd6e
sim/results/display_run_moveprob020.json結果(全条件・全シード)543,113a78b91ad427f02b3e51bad16a0cc16a6eaec8a17c7ed68e0eec77267aacca8ac
sim/results/display_run_t030.json結果(全条件・全シード)151,76607dbc1b0e19fabc54742e2a553ce4ff4880a4efe51b70f25ebc5356da905193a
sim/results/indifferent.json結果(全条件・全シード)63,385820fffa8b11a94d14c4516caba44d41b73dafa5da4108c6453c10dfb041c2ff9
sim/results/move_prob.json結果(全条件・全シード)102,934cb6d2e5b821ea722b362fae707d5ec9a43eda58a257abaedd0ceba3feaf2835a
sim/results/predictions_check.json予想の当たり外れ3,7031b8cdb779a3c536fe848361c6458636b02b06668ded3a6e7620cfd75008e5e36
sim/results/summary.json結果(全条件・全シード)192,9559fe2e325fdcfca3fda6d673d9465ea17ad080141467b319354cbd43a8b384402
sim/results/sweep_t.json結果(全条件・全シード)237,598d10a87a1d751a7f6fb412187fe80399d9466cdbf8415d635a6aecaf9f7940652
sim/results/sweep_t_ext.json結果(全条件・全シード)170,17068b79d9afa5c4e83ef13c5d20447e0a28eb4f86e926878b653f1125df4fe4b12
report/results.md結果表(平均・最小〜最大・n)11,904a4796cf1deaab4a03d2568767434fde04d0f1b30a40c7fa6c9a2de0d2dcad793
tests/test_sim_metrics.py指標の計算の試験(9件)4,580e1850325c99b58c89037d2c1d064f0127380b206efc9c26a8d65393c0121db04
script/ep01.md動画の台本の全文。数字は結果 JSON から差し込んだもの18,996b817326c09e7f67d7ef4d45b567c6b9d6e160df27e43d97f045bd8fb1c04a925
LICENSEApache License 2.0 の本文11,358cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30

sha256 の一覧は2つ置いています。20個の値はどちらも同じで、名前の列だけが違います。保存した名前に合うほうを使ってください——どちらでも sha256sum -c が 20行すべて OK になります。

一覧名前の列これを使う人
SHA256SUMS.txt元の名前
LICENSE / sim/schelling.py
下の「再現手順」のとおり、元の名前に戻して保存した人(そのまま回せる形)
SHA256SUMS-published.txtこの頁の名前
LICENSE.txt / sim/schelling.py.txt
この頁の木を.txt 付きのまま写した人

ep01 の再現手順

結果を作った環境: Python 3.12.3・NumPy 2.5.3。外部のデータは読みません(街は乱数で作る合成の街です)。

1. 空のフォルダで、ファイル一式を元の名前で取り寄せて sha256 を確かめる(.txt 付きで置いてある物を、元の名前に戻して保存します。20行すべて OK になります):

for f in sim/schelling.py sim/make_report.py sim/predictions.json sim/results/baseline.json sim/results/colors_shape.json sim/results/display_finals.json sim/results/display_run_colors3_bounded.json sim/results/display_run_indiff030.json sim/results/display_run_moveprob020.json sim/results/display_run_t030.json sim/results/indifferent.json sim/results/move_prob.json sim/results/predictions_check.json sim/results/summary.json sim/results/sweep_t.json sim/results/sweep_t_ext.json report/results.md tests/test_sim_metrics.py script/ep01.md LICENSE; do
  mkdir -p "$(dirname "$f")"
  case "$f" in *.json) src="$f" ;; *) src="$f.txt" ;; esac
  curl -fsSL "https://apps.d-it.co.jp/sim-lab/files/$src" -o "$f"
done
curl -fsSL "https://apps.d-it.co.jp/sim-lab/files/SHA256SUMS.txt" -o SHA256SUMS.txt
sha256sum -c SHA256SUMS.txt

この頁に置いてある名前(.txt 付き)のまま写したい場合は、こちら。確かめる一覧も -published のほうを使います(こちらは 2. を回す前に .txt を外す必要があります):

for f in sim/schelling.py.txt sim/make_report.py.txt sim/predictions.json sim/results/baseline.json sim/results/colors_shape.json sim/results/display_finals.json sim/results/display_run_colors3_bounded.json sim/results/display_run_indiff030.json sim/results/display_run_moveprob020.json sim/results/display_run_t030.json sim/results/indifferent.json sim/results/move_prob.json sim/results/predictions_check.json sim/results/summary.json sim/results/sweep_t.json sim/results/sweep_t_ext.json report/results.md.txt tests/test_sim_metrics.py.txt script/ep01.md.txt LICENSE.txt; do
  mkdir -p "$(dirname "$f")"
  curl -fsSL "https://apps.d-it.co.jp/sim-lab/files/$f" -o "$f"
done
curl -fsSL "https://apps.d-it.co.jp/sim-lab/files/SHA256SUMS-published.txt" -o SHA256SUMS-published.txt
sha256sum -c SHA256SUMS-published.txt

2. 回す(23条件 × 10シード〈seed 1001〜1010〉)・結果表を作る・試験する:

python3 -m venv .venv && .venv/bin/pip install numpy==2.5.3 pytest
.venv/bin/python sim/schelling.py --out rerun
.venv/bin/python sim/make_report.py --results rerun --out rerun/results.md
.venv/bin/python -m pytest -q tests

rerun/ にできた JSON は、sim/results/ の同名のファイルと、実行の時刻と所要時間の欄(generated_at・runtime_s・runtime_per_condition_s)を除いて一致します(当社の環境で 2026-10-10 に確かめました。1回の確認です)。

ep02 版のファイル

許可した再現用の6本と LICENSE です。.py と .md は公開面では末尾に .txt を付けていますが、中身は同じです。

パス何かバイトsha256
sim/granovetter.pyしきい値モデル本体と E1〜E611,97200fddbd2ca9fac8d2c1b5f5eb7a3054f271503207e6a3b08797673586939ff8c
sim/ep02_predictions.json本番の乱数を回す前に書いた予想(14個)3,835fe9cfc51562909cfe8157332ef48b888efb649fcadcaeff4539b7ca2ddec9553
sim/results/ep02/summary.jsonE1〜E6 の結果65,632131fece31e864c7e2059541fc97d0e7377c323f8e8ba9efc50190f2f82f01b5a
sim/results/ep02/predictions_check.json予想の当たり外れ3,55050da174db78660606bd3f08049e7c9912ea78417f650e3d7f2a816fbe0251f24
report/ep02-results.md結果表2,8464743597e618fb947ef819d4d1c7713d5cc8d90075eee2fa39f0272234687e070
tests/test_granovetter.pyモデル・決定性・予想判定の試験2,3732b4ce38902cdffe45b67df18862c9f26d0e8cf1506b8a94b60ec217e0c489192
LICENSEApache License 2.0 の本文11,358cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30

SHA256SUMS-ep02.txt は元の名前、SHA256SUMS-ep02-published.txt はこの頁の名前で検証する一覧です。

ep02 の再現手順

結果を作った環境は Python 3.12・NumPy 2.5.3。次の手順で取り寄せて検証し、計算をやり直せます。

set -- sim/granovetter.py sim/ep02_predictions.json sim/results/ep02/summary.json sim/results/ep02/predictions_check.json report/ep02-results.md tests/test_granovetter.py LICENSE
for f do
  mkdir -p "$(dirname "$f")"
  case "$f" in *.json) src="$f" ;; *) src="$f.txt" ;; esac
  curl -fsSL "https://apps.d-it.co.jp/sim-lab/files/$src" -o "$f"
done
curl -fsSL "https://apps.d-it.co.jp/sim-lab/files/SHA256SUMS-ep02.txt" -o SHA256SUMS-ep02.txt
sha256sum -c SHA256SUMS-ep02.txt
python3 -m venv .venv && .venv/bin/pip install numpy==2.5.3 pytest
.venv/bin/python sim/granovetter.py --out rerun
.venv/bin/python -m pytest -q tests/test_granovetter.py

rerun/summary.json は公開した結果と、実行時刻・所要時間の generated_at と runtime_s を除いて一致します。

ep02 のモデルについて

参考文献

ep03 版のファイル

許可した再現用の6本と LICENSE です。.py と .md は公開面では末尾に .txt を付けていますが、中身は同じです。

パス何かバイトsha256
sim/ep03/voter_model.py投票者モデル本体と E1〜E415,263de4a1e7e11183847b5acaded5eb8aba336346aae15fef3032aa38c0c89d64cfc
sim/ep03/predictions.json本番の乱数を回す前に書いた予想(14個)4,334df804983976a31f007b1c22142fca0565002af6b7cc3eb753b725441f71a7897
sim/results/ep03/summary.jsonE1〜E4 の結果166,7933898600c487542338e38192f46ea8a47ff747300f526399a0871ae3e921f1ed0
sim/results/ep03/predictions_check.json予想の当たり外れ3,313493c263edf9e67bf6e8e6afb390b9f01328da93e9b7c10050fbd9d1a7c8c6f9d
report/ep03-results.md結果表2,850ff052b931bbdbc053bc5e85195026cbf1354b23d1df563866a40668e7fb1c98a
sim/ep03/test_voter_model.pyモデル・決定性・予想判定の試験7,4339e1aa977d7610f715dd0b1a6de32bd80096c585040ae0e45d5e3a3707c98eb9d
LICENSEApache License 2.0 の本文11,358cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30

SHA256SUMS-ep03.txt は元の名前、SHA256SUMS-ep03-published.txt はこの頁の名前で検証する一覧です。

ep03 の再現手順

標準ライブラリだけを使います。次の手順で取り寄せて検証し、計算をやり直せます。

set -- sim/ep03/voter_model.py sim/ep03/predictions.json sim/results/ep03/summary.json sim/results/ep03/predictions_check.json report/ep03-results.md sim/ep03/test_voter_model.py LICENSE
for f do
  mkdir -p "$(dirname "$f")"
  case "$f" in *.json) src="$f" ;; *) src="$f.txt" ;; esac
  curl -fsSL "https://apps.d-it.co.jp/sim-lab/files/$src" -o "$f"
done
curl -fsSL "https://apps.d-it.co.jp/sim-lab/files/SHA256SUMS-ep03.txt" -o SHA256SUMS-ep03.txt
sha256sum -c SHA256SUMS-ep03.txt
python3 sim/ep03/voter_model.py --results-dir rerun
python3 -m unittest -v sim/ep03/test_voter_model.py

rerun/summary.json は公開した結果と、実行時刻・所要時間の generated_at と runtime_s を除いて一致します。

ep03 のモデルについて

参考文献

ep04 版のファイル

許可した再現用の6本と LICENSE です。.py と .md は公開面では末尾に .txt を付けていますが、中身は同じです。

パス何かバイトsha256
sim/ep04/braess_model.pyBraess のパラドックス(一台ずつ乗り換える)本体と E1〜E422,821700d3de765d4784e996c2fd9822489efab032e132eabf1e7be4406f09f3c3bd6
sim/ep04/predictions.json本番の乱数を回す前に書いた予想(14個)4,415902ddb7bb7235da60ca41b97e1e10cb7e2c97300430ae5fa12a11190387ca471
sim/results/ep04/summary.jsonE1〜E4 の結果95,135b10f453f78f269eee2ee4f61a75f5955aef55779f5abae5556ae3ea1592a2df2
sim/results/ep04/predictions_check.json予想の当たり外れ3,156dffd7bbd4abb3418423548b418cd64353bd948bcf7a53c2a221c67580e5a2a0e
report/ep04-results.md結果表3,99851882bc094eb6671020d422d8520d0d43018b5062b1037739b5ec0d3329c47c5
sim/ep04/test_braess_model.pyモデル・決定性・理論値の試験3,883d796e39db158832090359822c9f3687a774fe0ce64fc0ba87bdcfab4a442369c
LICENSEApache License 2.0 の本文11,358cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30

SHA256SUMS-ep04.txt は元の名前、SHA256SUMS-ep04-published.txt はこの頁の名前で検証する一覧です。

ep04 の再現手順

標準ライブラリだけを使います。次の手順で取り寄せて検証し、計算をやり直せます。

set -- sim/ep04/braess_model.py sim/ep04/predictions.json sim/results/ep04/summary.json sim/results/ep04/predictions_check.json report/ep04-results.md sim/ep04/test_braess_model.py LICENSE
for f do
  mkdir -p "$(dirname "$f")"
  case "$f" in *.json) src="$f" ;; *) src="$f.txt" ;; esac
  curl -fsSL "https://apps.d-it.co.jp/sim-lab/files/$src" -o "$f"
done
curl -fsSL "https://apps.d-it.co.jp/sim-lab/files/SHA256SUMS-ep04.txt" -o SHA256SUMS-ep04.txt
sha256sum -c SHA256SUMS-ep04.txt
python3 sim/ep04/braess_model.py --results-dir rerun
cd sim/ep04 && python3 -m unittest -v test_braess_model.py

rerun/summary.json は公開した結果と、実行時刻・所要時間の generated_at と runtime_s を除いて一致します。

No.04「近道」— 照合の記録

No.04「近道」の結果ファイル summary.json(この頁で公開しているもの)の値を、別に書いた第2の実装で計算し直し、1項目ずつ比べました。第2の実装は、経路ごとの式を使わず、道の一本一本に何台いるかを数え直してから所要時間を足す書き方です。

記録内容
照合した項目数4,869
比べた元この頁の summary.json(動画の数字を計算した当社の実装の結果)
比べた相手当社の第2の実装(別の書き方で計算し直したもの)
食い違い0
照合した日2026年11月5日
記録の出所当社の制作記録 EP04 §3「突き合わせ」(社内文書)。第2の実装のコードと照合の出力は、この頁には載せていません

比べたのは、「道なし」「道あり」の各1,000回の結果・台数を変えた掃引・動画で見せた回の途中経過・理論の値・予想の当たり数の、合わせて4,869項目です。2026年11月5日の照合では、食い違いは0でした。どちらの実装も当社が書いたもので、社外による検証ではありません。

ep04 のモデルについて

参考文献

モデルについて

参考文献

ライセンスとクレジット

訂正の窓口

誤りのご指摘は当社の窓口へお寄せください。確認して訂正します(動画のコメント欄でも受け付けますが、見落とすことがあります)。

ここにあるデータはすべて合成です(実在の人物・場所・学校は含みません)。ご指摘に個人情報は書かないでください。

開示

コード・台本・映像は AI が作成しました。No.01 完全版だけ合成音声で、ほかは字幕だけです。法的な運営者は株式会社DIGITです。この頁と動画は教育・情報提供を目的としており、特定の個人・団体・政策を支持または批判するものではありません。

このアプリをシェア

Xでシェア LINEで送る

共有しても、当社には何も届きません。リンクの末尾の from=… は、どの入口から来たかを数えるための共通の印で、人や端末を見分けるものではありません。

この仕組みを、業務用に

シミュレーションや数字の再現の仕組みづくりも承っています。

制作を相談する

お問い合わせのページ(株式会社DIGIT)へ移動します。送るだけでは契約や発注にはなりません。秘密の情報や、個人の詳しい情報は書かないでください。

気に入ったら、シェアしてもらえるとうれしいです。作っている裏側は note に書いています。