店里的袋子
在一月的首个购物日,日本百货商店和精品店出售福袋:不透明的袋子,价格固定,里面装满了店家声称价值超过价格的未售出库存。队伍在开门前就排起来了。乐趣在于密封,而非内容物;你知道这个袋子总体上是个好交易,但你不知道你的袋子里装的是什么。这是一种彩票,其中门票保证值得某些东西,这是彩票中的罕见形式。
这个形式正是我们的游戏保持的。袋子有价格,打开是一次抽取,物品的价值是价格的倍数,永远不会是零。它掉落的是店家的承诺,即内容物超过价格,因为一个游戏不能做出这个承诺并保持为游戏。取而代之的是它发布了表格。
两个袋子,十五样物品
| 物品 | 支付 | 概率 | 权重(百万分之一) |
|---|---|---|---|
| 手拭 Tenugui,手巾 | ×0.20 | 45% | 450,000 |
| 御守 Omamori,护身符 | ×0.50 | 29% | 290,000 |
| 招 Maneki-neko | ×1 | 14% | 140,000 |
| 達磨 Daruma | ×2 | 7% | 70,000 |
| 鯉 Koinobori | ×5 | 3.2% | 32,000 |
| 扇 Sensu, a fan | ×10 | 1.26% | 12,600 |
| 刀 Katana | ×25 | 0.5% | 5,000 |
| 金招 Golden maneki-neko | ×100 | 0.04% | 400 |
权重总和为 1,000,000。返回 = Σ 概率 × 支付 = 0.090 + 0.145 + 0.140 + 0.140 + 0.160 + 0.126 + 0.125 + 0.040 = 96.6%。
| 物品 | 支付 | 概率 | 权重(百万分之一) |
|---|---|---|---|
| 箸 Hashi,筷子 | ×0.10 | 58% | 580,000 |
| 風鈴 Fūrin,风铃 | ×0.50 | 26% | 260,000 |
| 面 Kitsune 面具 | ×1 | 1.98% | 19,800 |
| 提灯 Chōchin,灯笼 | ×2 | 8.5% | 85,000 |
| 兜 Kabuto,一顶头盔 | ×6 | 4% | 40,000 |
| 龍 Ryū,一条龙 | ×20 | 1.5% | 15,000 |
| 鳳凰 Hōō,一只凤凰 | ×250 | 0.02% | 200 |
Return = 0.058 + 0.130 + 0.0198 + 0.170 + 0.240 + 0.300 + 0.050 = 96.78%。两个袋子的价格相差在0.18个点以内。
ENGINE-VERIFIEDfuku/derive.ts: UME_ITEMS 和 MATSU_ITEMS 列表中每个物品的 mult100(价格的百分之一的支付)和权重("抽奖权重(百万分之一)");头部注释计算 "RTP = Σ w/1e6 × mult" 对于 Ume 为 96.6%,对于 Matsu 为 96.78%。FUKU_BAGS 将 Ume 描述为"平衡袋——稳定抽取,顶部 ×100",将 Matsu 描述为"疯狂袋——更严苛的底部,×250 隐藏其中"。上面的概率是权重除以一百万;至少价格数字(Ume 26.0%,Matsu 16.0%)是 ×1 及以上行的总和,为本文计算。
将两个表格视为一个设计决策做了两次。Ume 将74%的开启放在两个最便宜的物品上,并沿着平缓的阶梯分散其余的;Matsu 将84%放在它的两个最便宜的,使其底部的慷慨程度减半,并通过千次中十五次的 ×20 龙和万次中两次的 ×250 凤凰来补偿。相同价格,两种形状。想要开启五十个袋子并保留大部分金钱的玩家选择 Ume;想要一次开启能产生重大影响的玩家选择 Matsu。都不便宜。
一个数字,一个袋子
抽奖是引擎中最简单的。该轮的哈希值给出一个均匀数字;将其乘以一百万并向下舍入,您就有了一个在0到999,999之间的整数。遍历袋子的物品列表并累加权重:第一个其累计权重超过滚动的物品就是你开启的那个。这就是整个机制。没有轮盘物理、没有停止位置、没有第二次抽奖。随后的动画旋转转轮以获得效果,它落地的结果在开始前就已经决定了。
ENGINE-VERIFIEDfuku/derive.ts deriveFuku: u = u64(HMAC-SHA256(serverSeed, `${clientSeed}-${nonce}-0`)); roll = min(floor(u × 1,000,000), 999,999); items are scanned in order and the first with cumulative weight above the roll is returned. _shared/demoLocal.ts: “One nonce per bag; cursor 0 draws the item … Money settles at open; the reel ride is pure theater.” demoFukuOpen debits the price, derives the item, and credits centsFloor(price × mult100 / 100).
, 0 draws the item … Money settles at open; the reel ride is pure theater.
Matsu(price),
demoFukuOpen debits the price, derives the item, and credits centsFloor(price × mult100 / 100).
- THE FLOOR IS A FEATURE, NOT A KINDNESS. IT MOVES RETURN FROM THE RARE ITEMS TO THE COMMON ONES. THE BAG IS NOT MORE GENEROUS FOR IT; IT IS DIFFERENTLY SHAPED.
- “Always pays something” is not “usually pays back”. Ume returns at least the price about one open in four, Matsu about one in six. Most bags are worth less than they cost, as the return figure already says.
- THE TWO BAGS ARE THE SAME PRICE. CHOOSING MATSU OVER UME CHANGES HOW THE 3.3% EDGE IS COLLECTED, NOT HOW MUCH. READ THE SHAPE YOU WANT AND OPEN THAT ONE.
THE TABLES ABOVE ARE READ FROM THE CLIENT DERIVATION MODULE, WHICH THE SOURCE DESCRIBES AS SHARED BY THE DEMO ENGINE AND THE BROWSER VERIFIER; THE HOUSE SERVICE IS THE PAYING AUTHORITY. ITEM NAMES AND GLYPHS ARE THE ENGINE'S. THIS IS A DESIGN NOTE, NOT A RECOMMENDATION TO OPEN BAGS.
FAQ
WHAT IS FUKUBUKURO ON THIS SITE?
A ONE-DRAW GAME: PAY THE BAG PRICE, OPEN IT, RECEIVE AN ITEM WORTH A FIXED MULTIPLE OF THE PRICE. TWO BAGS, UME WITH EIGHT ITEMS UP TO ×100 AND MATSU WITH SEVEN ITEMS UP TO ×250.
WHAT DOES EACH BAG RETURN?
UME 96.6% AND MATSU 96.78% OF THE PRICE ON AVERAGE, COMPUTED FROM THE ENGINE'S WEIGHT TABLES AS CHANCE × PAYOUT SUMMED OVER THE ITEMS.
DOES EVERY BAG REALLY PAY SOMETHING?
YES. THE CHEAPEST ITEM IS ×0.20 OF THE PRICE IN UME AND ×0.10 IN MATSU, SO AN OPEN NEVER RETURNS ZERO. MOST OPENS RETURN LESS THAN THE PRICE: UME PAYS AT LEAST THE PRICE ON ABOUT 26% OF OPENS, MATSU ON ABOUT 16%.
HOW IS THE ITEM CHOSEN?
ONE NUMBER FROM THE ROUND'S HASH, SCALED TO AN INTEGER BETWEEN 0 AND 999,999, IS COMPARED AGAINST THE BAG'S CUMULATIVE WEIGHTS IN MILLIONTHS. THE FIRST ITEM WHOSE CUMULATIVE WEIGHT EXCEEDS THE ROLL IS THE RESULT. THE REEL ANIMATION AFTERWARDS IS DISPLAY ONLY.
WHICH BAG IS BETTER?
NEITHER, BY RETURN. UME IS THE STEADIER SHAPE WITH A ×100 TOP; MATSU HAS A HARSHER FLOOR AND A ×250 TOP. THEY DIFFER IN VOLATILITY AT NEARLY THE SAME PRICE.
SOURCES & REFERENCES
- Betkyo引擎源代码:fuku/derive.ts (UME_ITEMS, MATSU_ITEMS, FUKU_BAGS, deriveFuku), _shared/demoLocal.ts (demoFukuOpen)
- 至少价格数据是为本文计算的×1及以上权重的总和:Ume为260,000 / 1,000,000,Matsu为160,000 / 1,000,000
本文中的游戏