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
140
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
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
18k
テーブルをDELETEした
yuzneri
0
140
昔つくったIoTデバイス
yuzneri
0
92
サークル参加から学ぶ、小さな事業の回し方
yuzneri
0
350
色を視る
yuzneri
0
530
即売会で使える業務用決算端末
yuzneri
0
100
コードの外側に惹かれた
yuzneri
0
93
ぼくの開発環境2026
yuzneri
1
480
2025年アウトプット振り返り
yuzneri
0
80
Other Decks in Programming
See All in Programming
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.4k
<title><a id="</title>君はこのHTMLをパースできるか"></a></title> #雑LT_study
pizzacat83
0
140
作るコストが小さくなった時代 幸せに働くために改めて考えたいこと 〜エンジニアとして価値を出し続けるために注視している二分野〜
yuppeeng
0
200
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
210
AI Engineeringは、AIプロダクトだけのものか? 〜AIがソフトウェアを作る時代の新しい当たり前〜 / No AI in your product. AI Engineering in your development.
rkaga
4
380
php-fpmのプロセスが枯渇した日-調査・対処・そして本当にやるべきだったこと-
shibuchaaaan
0
250
Google Apps Script で Ruby を動かす
kawahara
0
140
S3 を使うアプリケーションをローカル完結で動かすことに全力を注いでみた / Running S3 Apps Offline
contour_gara
0
420
ソフトウェア設計に溶けるインフラ ― AWS CDK のインフラ認識論
konokenj
3
770
PostgreSQL 18で考えるUUID主キー
kazuhiro1982
0
470
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
560
AI Readyの正体はデータマネジメントだ メダリオン2.0の最前線
freee
PRO
0
150
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Leveraging Curiosity to Care for An Aging Population
cassininazir
1
460
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
480
Embracing the Ebb and Flow
colly
88
5.1k
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
450
The Cult of Friendly URLs
andyhume
79
7k
A designer walks into a library…
pauljervisheath
211
24k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Leo the Paperboy
mayatellez
8
2.1k
How to Think Like a Performance Engineer
csswizardry
28
2.7k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.1k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
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 •コンピューターは乱数を作るのが苦⼿ •乱数はシードを元に⼀定の計算でできている •ゲームだと乱数に再現性を持たせられる •設計によっては偏る •偏りを逆⼿に取ったゲームもあるので奥が深い