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
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
運転動画を検索可能にする〜Cosmos-Embed1とDatabricks Vector Searchで〜/cosmos-embed1-databricks-vector-search
studio_graph
0
420
属人化しないコード品質の作り方_2026.04.07.pdf
muraaano
0
230
iOS機能開発のAI環境と起きた変化
ryunakayama
0
190
Server-Side Kotlin LT大会 vol.18 [Kotlin-lspの最新情報と Neovimのlsp設定例]
yasunori0418
1
180
Programming with a DJ Controller — not vibe coding
m_seki
3
140
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
280
瑠璃の宝石に学ぶ技術の声の聴き方 / 【劇場版】アニメから得た学びを発表会2026 #エンジニアニメ
mazrean
0
280
感情を設計する
ichimichi
5
1.5k
AIと共に生きる技術選定 2026
sgash708
0
100
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
640
GNU Makeの使い方 / How to use GNU Make
kaityo256
PRO
16
5.6k
AIを導入する前にやるべきこと
negima
2
150
Featured
See All Featured
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
280
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
490
Claude Code のすすめ
schroneko
67
220k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.2k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
How to Grow Your eCommerce with AI & Automation
katarinadahlin
PRO
1
170
Skip the Path - Find Your Career Trail
mkilby
1
110
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
190
Chasing Engaging Ingredients in Design
codingconduct
0
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 •コンピューターは乱数を作るのが苦⼿ •乱数はシードを元に⼀定の計算でできている •ゲームだと乱数に再現性を持たせられる •設計によっては偏る •偏りを逆⼿に取ったゲームもあるので奥が深い