Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
ゲームと乱数
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
yuzneri
April 23, 2026
Programming
57
0
Share
ゲームと乱数
2026/04/23
レトロゲームから得た学びの発表 #06
yuzneri
April 23, 2026
More Decks by yuzneri
See All by yuzneri
サークル参加から学ぶ、小さな事業の回し方
yuzneri
0
200
色を視る
yuzneri
0
360
即売会で使える業務用決算端末
yuzneri
0
61
コードの外側に惹かれた
yuzneri
0
58
ぼくの開発環境2026
yuzneri
1
370
2025年アウトプット振り返り
yuzneri
0
46
E2Eテストで開発を止めないためのPlaywright高速化
yuzneri
0
330
努力の方向を変えれば結果は変わる(画像削除済)
yuzneri
2
130
PHPUnitの限界をPlaywrightで補完するテストアプローチ
yuzneri
0
980
Other Decks in Programming
See All in Programming
AgentCore Optimizationを始めよう!
licux
3
260
【ディップ|26年新卒研修資料】TDD実装演習
dip_tech
PRO
0
190
Agentic UI beyond Chats Architecture Patterns & Open Standards @ngMunich 05/2026
manfredsteyer
PRO
0
110
密結合なバックエンドから TypeScript のコードを生成する
kemuridama
0
230
AI駆動開発勉強会 広島支部 第一回勉強会 AI駆動開発概要とワークショップ
hayatoshimiu
0
170
TypeSpec で繋ぐ複数プロダクトの型安全
maroon8021
1
110
なぜあなたのコードには「コシ」がないのか?〜AI時代に問う、最後まで美味しい設計と戦略〜 #phpconkagawa / phpconkagawa2026
shogogg
0
210
Import assertionsが消えた日~ECMAScriptの仕様はどう決まり、なぜ覆るのか~
bicstone
2
190
Hive Metastoreを通して学ぶIceberg REST Catalog ― 仕様から実装まで
okumin
0
160
Spec-Driven Development with AI Agents (Workshop, May 2026)
antonarhipov
3
400
Back to the roots of date
jinroq
0
890
Surviving Black Friday: 329 billion requests with Falcon!
ioquatix
0
3.2k
Featured
See All Featured
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Building AI with AI
inesmontani
PRO
1
1k
A designer walks into a library…
pauljervisheath
211
24k
The Invisible Side of Design
smashingmag
302
52k
HU Berlin: Industrial-Strength Natural Language Processing with spaCy and Prodigy
inesmontani
PRO
0
380
The SEO Collaboration Effect
kristinabergwall1
1
450
B2B Lead Gen: Tactics, Traps & Triumph
marketingsoph
0
120
Testing 201, or: Great Expectations
jmmastey
46
8.1k
Bootstrapping a Software Product
garrettdimon
PRO
307
120k
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
230
The untapped power of vector embeddings
frankvandijk
2
1.7k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
530
Transcript
撮影OK、𝕏投稿OK ゆずねり@yuzneri ゲームと乱数 2026/04/23 レトロゲームから得た学びの発表 #06
ゆずねり@yuzneri •おもにバックエンドエンジニア •技術系の同⼈誌や商業誌の執筆 •ドールと暮らしてます 2026/04/23 2 𝕏
ゲームと乱数 2026/04/23 3 •コンピュータは計算は得意 •コンピュータはランダムな処理は苦⼿ •どうやって乱数を取得するのか
レトロゲームでよく使われていた⽅法 2026/04/23 4 •Rレジスタ •線形帰還シフトレジスタ(LFSR) •線形合同法(LCG) •テーブル参照法
ハードウェアの値を使う 2026/04/23 5 •メモリやCPUレジスタの値を取得する •取得したときに予測不可能であることが多い •プレイヤーは知りようがない値
擬似乱数 2026/04/23 6 •⼀定の計算ルールに則って⽣成する •初期値としてシードが必要 •シードが同じなら、同じ乱数列になる
最古の擬似乱数 2026/04/23 7 •2乗した値の真ん中を採⽤する •シード:88 •88^2=7744→74 •74^2=5476→47 •47^2=2209→20
UUIDv4 2026/04/23 8 •こんなやつ •5b974d28-b544-42ee-b6c1-37d88b044878 •約10^38=5.3澗個 •ほぼ衝突しないといわれている •本当に?
UUIDv4はまれによくぶつかる 2026/04/23 9 •擬似乱数はシードが同じだと同じ結果になる •シードの決め⽅や使う乱数によってはよくぶつ かる •ちゃんとしたライブラリを使いましょう
まとめ 2026/04/23 10 •コンピューターは乱数を作るのが苦⼿ •乱数はシードを元に⼀定の計算でできている •ゲームだと乱数に再現性を持たせられる •設計によっては偏る •偏りを逆⼿に取ったゲームもあるので奥が深い