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
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
yuzneri
April 23, 2026
Programming
81
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
ゲームと乱数
2026/04/23
レトロゲームから得た学びの発表 #06
yuzneri
April 23, 2026
More Decks by yuzneri
See All by yuzneri
昔つくったIoTデバイス
yuzneri
0
37
サークル参加から学ぶ、小さな事業の回し方
yuzneri
0
280
色を視る
yuzneri
0
480
即売会で使える業務用決算端末
yuzneri
0
72
コードの外側に惹かれた
yuzneri
0
77
ぼくの開発環境2026
yuzneri
1
420
2025年アウトプット振り返り
yuzneri
0
58
E2Eテストで開発を止めないためのPlaywright高速化
yuzneri
0
400
努力の方向を変えれば結果は変わる(画像削除済)
yuzneri
2
150
Other Decks in Programming
See All in Programming
「なぜそう決めたのか」を残し続ける仕組み ― Notion AI カスタムエージェント × Slack連携による設計判断の自動記録 - NIKKEI Tech Talk #47
niftycorp
PRO
0
260
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
160
「正の参照」と 「負の導出」で組む ハーネスエンジニアリング
cottpan
1
140
Generative UI & AI-Assistants for Your Angular Solutions
manfredsteyer
PRO
1
170
ローカルLLMでどこまでコードが書けるか -縮小版 / How much code can be written on a local LLM Shortened
kishida
2
190
Creating Composable Callables in Contemporary C++
rollbear
0
210
PHPだって関数型したい 〜できること、できないこと〜 / fp-in-php
jsoizo
0
200
任せる範囲はこう広がった / How the Scope of AI Delegation Has Expanded
nrslib
1
250
LaravelLive Japan の裏方のすべて — 第188回 PHP勉強会@東京 (2026-06-24)
suguruooki
2
150
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
3
4.3k
【やさしく解説 設計編 #1】「ドメイン駆動」と「実装駆動」ってなに? 〜設計の考え方を、たとえ話で学ぼう〜
panda728
PRO
1
120
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
5.9k
Featured
See All Featured
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
460
Money Talks: Using Revenue to Get Sh*t Done
nikkihalliwell
0
340
Reflections from 52 weeks, 52 projects
jeffersonlam
356
21k
Prompt Engineering for Job Search
mfonobong
0
370
The Curse of the Amulet
leimatthew05
2
13k
Writing Fast Ruby
sferik
630
63k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
490
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
For a Future-Friendly Web
brad_frost
183
10k
GitHub's CSS Performance
jonrohan
1033
470k
Un-Boring Meetings
codingconduct
0
340
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 •コンピューターは乱数を作るのが苦⼿ •乱数はシードを元に⼀定の計算でできている •ゲームだと乱数に再現性を持たせられる •設計によっては偏る •偏りを逆⼿に取ったゲームもあるので奥が深い