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
25
0
Share
ゲームと乱数
2026/04/23
レトロゲームから得た学びの発表 #06
yuzneri
April 23, 2026
More Decks by yuzneri
See All by yuzneri
色を視る
yuzneri
0
110
即売会で使える業務用決算端末
yuzneri
0
29
コードの外側に惹かれた
yuzneri
0
45
ぼくの開発環境2026
yuzneri
1
340
2025年アウトプット振り返り
yuzneri
0
36
E2Eテストで開発を止めないためのPlaywright高速化
yuzneri
0
290
努力の方向を変えれば結果は変わる(画像削除済)
yuzneri
2
120
PHPUnitの限界をPlaywrightで補完するテストアプローチ
yuzneri
0
940
技術同人誌を書いてみよう!
yuzneri
1
89
Other Decks in Programming
See All in Programming
Spec Driven Development | AI Summit Vilnius
danielsogl
PRO
1
110
The Monolith Strikes Back: Why AI Agents ❤️ Rails Monoliths
serradura
0
340
第3木曜LT会 #28
tinykitten
PRO
0
110
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
280
의존성 주입과 모듈화
fornewid
0
150
Claude CodeでETLジョブ実行テストを自動化してみた
yoshikikasama
0
670
PHP で mp3 プレイヤーを実装しよう
m3m0r7
PRO
0
290
NakouPAY説明用
annouim0
0
260
検索設計から 推論設計への重心移動と Recall-First Retrieval
po3rin
3
1k
Vibe하게 만드는 Flutter GenUI App With ADK , 박제창, BWAI Incheon 2026
itsmedreamwalker
0
550
Terraform言語の静的解析 / static analysis of Terraform language
wata727
1
110
t *testing.T は どこからやってくるの?
otakakot
1
710
Featured
See All Featured
The Invisible Side of Design
smashingmag
303
52k
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.4k
Designing for Timeless Needs
cassininazir
0
200
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
370
The Mindset for Success: Future Career Progression
greggifford
PRO
0
310
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
0
280
Agile that works and the tools we love
rasmusluckow
331
21k
Odyssey Design
rkendrick25
PRO
2
580
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
170
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 •コンピューターは乱数を作るのが苦⼿ •乱数はシードを元に⼀定の計算でできている •ゲームだと乱数に再現性を持たせられる •設計によっては偏る •偏りを逆⼿に取ったゲームもあるので奥が深い