Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
ゲームと乱数
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
yuzneri
April 23, 2026
Programming
180
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
散らかるAIセッションを何とかしたい
yuzneri
0
59
10秒ずつ届く推し
yuzneri
0
64
かわいい娘
yuzneri
0
78
人間の目はかわらない、でも、発表の届き方はかわる
yuzneri
0
100
人間の目はかわらない、だからJPEGは30年もつ
yuzneri
12
20k
テーブルをDELETEした
yuzneri
0
230
昔つくったIoTデバイス
yuzneri
0
120
サークル参加から学ぶ、小さな事業の回し方
yuzneri
0
440
色を視る
yuzneri
0
630
Other Decks in Programming
See All in Programming
우리의 Nitro Modules는 당신의 Turbo Modules보다 아름답다
l2hyunwoo
0
250
Spec-driven Development with AI
simas
PRO
0
2.3k
AmebaブログはKMPから卒業します
kmars0605
0
330
AWS CDKを理解するために公式の定義を深掘って解説してみる / Understanding AWS CDK by Digging into Its Official Definition
akihisaikeda
3
280
地方こそサーバーレス — 10年続けた、顔が見えるチームで確かな基盤を / Serverless Matters Most in Regional Areas — 10 Years of Building Reliable Foundations with Close-Knit Teams
seike460
PRO
1
230
baseline으로 마이그레이션, 리팩토링 안전하게 맡기기
fornewid
1
920
オーケストレーション記述言語 Katari
yukikurage
0
240
Herb in Rails 8.2: Your ERB views, now HTML-aware @ Kaigi on Rails 2026, Tokyo, Japan
marcoroth
2
420
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
300
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
240
全ての永続トークンを、生まれる前に消し去りたい!
sylph01
3
1.7k
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
140
Featured
See All Featured
WCS-LA-2024
lcolladotor
0
980
Thoughts on Productivity
jonyablonski
76
5.5k
The World Runs on Bad Software
bkeepers
PRO
72
12k
Optimising Largest Contentful Paint
csswizardry
37
4k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
How to train your dragon (web standard)
notwaldorf
96
6.9k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1.1k
We Have a Design System, Now What?
morganepeng
55
8.4k
The Curious Case for Waylosing
cassininazir
1
610
Fashionably flexible responsive web design (full day workshop)
malarkey
409
67k
How to Ace a Technical Interview
jacobian
280
24k
Technical Leadership for Architectural Decision Making
baasie
3
640
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 •コンピューターは乱数を作るのが苦⼿ •乱数はシードを元に⼀定の計算でできている •ゲームだと乱数に再現性を持たせられる •設計によっては偏る •偏りを逆⼿に取ったゲームもあるので奥が深い