開発中に得た気づきや副産物のツールを公開します。 Publishing insights and byproduct tools discovered during development. 公開在開發過程中獲得的見解及副產品工具。
テーブルを活用すると、NP効率は約30%向上する(パックマン) Using the Table Improves NP Efficiency by About 30% (Pacman) 善用表格可讓 NP 效率提升約 30%(小精靈)
DP

イベントガチャの最適探索は、これまで「獲得目標(特定キャラ x 必要個数)を最小コストで揃える」ことだけを目的にしてきた。 しかしパックマンガチャのように、キャラを交換して得られるNP(にゃんこポイント)の効率が高いガチャでは、 「特定のキャラを1体揃える」ことより「限られたイベントチケットの中でとにかく数を集める」ことのほうが実利が大きい場面がある。 この記事では、そのために新設した探索モード(以下NPモード)を用いて、ガチャテーブルを見て引き方を最適化することに実際どれだけの価値があるのかを検証してみた。

Until now, Optimal Path Finder for Event Gacha has only aimed to "assemble a target (a specific character x required count) at minimum cost." However, for gachas like the Pacman gacha, where trading characters for NP (Nyanko Points) is highly efficient, there are cases where "gathering as many as possible within a limited number of event tickets" has more practical value than "assembling one copy of a specific character." This article verifies, using a newly added search mode built for this purpose (hereafter "NP Mode"), how much value there actually is in optimizing your rolls by looking at the gacha table.

活動轉蛋的最佳路徑搜尋,至今的目的僅在於「以最低成本湊齊獲得目標(特定角色 × 所需數量)」。 然而,像小精靈轉蛋這種以角色交換獲得的 NP(喵喵點數)效率很高的轉蛋, 有時「在有限的活動券內盡量多蒐集」比「湊齊1隻特定角色」更具實際價值。 本文使用為此新設的搜尋模式(以下稱 NP 模式),驗證了看著轉蛋表格最佳化抽法,實際上究竟有多少價值。

主要な結論: パックマンガチャは、ドロップ率だけから見積もったNP効率(統率力あたりのNP獲得量。小さいほど効率的)が 約144統率/NP とされ、超生命体強襲(約130統率/NP)にわずかに劣ると評価されてきた。 しかし今回、ガチャテーブルを見て単発・10連の配分を最適化する NPモードを使うと、 獲得数は平均で約30%向上することがわかった。これをNP効率に換算すると 約111統率/NP となり、強襲を明確に上回る(§6)。 周回インターバルの制約もなく副産物(アイテム・XP)も豊富な点を考えると、 パックマンは「テーブルを見て引く」前提なら現状最高クラスのNP周回イベントといえそうだ。

Main conclusion: The Pacman gacha's NP efficiency estimated from drop rates alone (NP gained per unit of Cat Energy; lower is more efficient) was said to be about 144 Energy/NP, slightly worse than 超生命体強襲 (about 130 Energy/NP). However, this experiment found that using NP Mode to optimize the mix of single and 10-Rolls by looking at the gacha table improves the number obtained by about 30% on average. Converted to NP efficiency, that comes to about 111 Energy/NP, which clearly beats 超生命体強襲 (§6). Given that there is no cooldown between runs and the byproducts (items, XP) are plentiful, Pacman looks like the best-in-class NP farming event currently confirmed, provided you roll while looking at the table.

主要結論: 小精靈轉蛋僅以掉落率估算的 NP 效率(每點統率力所獲得的 NP 量,數值越小越有效率) 一般認為約為 144 統率/NP,略遜於超生命體強襲(約 130 統率/NP)。 然而本次實驗發現,透過查看轉蛋表格來最佳化單抽與10連的分配,使用 NP 模式後, 平均獲得數提升了約 30%。換算為 NP 效率則約為 111 統率/NP明顯超越強襲(§6)。 考量到沒有周回間隔限制、副產物(道具・XP)也十分豐富, 若以「看表格再抽」為前提,小精靈可說是目前已知最頂級的 NP 周回活動。

1. 背景

1. Background

1. 背景

既存のイベントガチャ最適化は「ターゲットキャラ×必要個数」を満たす最短経路を探す設計であり、 キャラのコンプリートが目的で、イベントチケットの入手が大変なガチャに対してなら自然だが、 「特定の2〜3種類をとにかく多く集めたい」 という物量目的で、パックマンのようにイベチケの入手が容易なガチャには噛み合わない。そこで、次の一点だけを目的とする NPモードを新設した。

The existing Event Gacha optimizer is designed to find the shortest route satisfying "target character × required count." That is natural when the goal is completing characters on a gacha where event tickets are hard to obtain, but it doesn't fit a volume-based goal of "gathering as many as possible of 2-3 specific types," on a gacha like Pacman where event tickets are easy to obtain. So we added an NP Mode aimed at only the following single objective.

既有的活動轉蛋最佳化,是以滿足「目標角色 × 所需數量」為設計的最短路徑搜尋, 若目的是湊齊角色、且活動券難以取得的轉蛋,這樣的設計自然合理, 但對於「想盡量多蒐集特定2〜3種」這種以數量為目的的需求, 以及像小精靈這種活動券容易取得的轉蛋,就不太吻合了。因此我們新設了只以下述單一目標為目的的 NP 模式。

チケット予算 B 枚以内で、ターゲットの合計獲得数を最大化する経路を求めよ

Within a ticket budget of B, find the route that maximizes the total number of targets obtained.

在票券預算 B 張以內,求出能使目標總獲得數最大化的路徑

2. アルゴリズム:2次元状態空間に対する動的計画法

2. Algorithm: Dynamic Programming Over a 2D State Space

2. 演算法:二維狀態空間的動態規劃

ポイントは2つある。①乱数が決定的であること、②(ターゲットがレア重複の対象でない限り)NPモードのスコアに関しては「そのアイテムがターゲットかどうか」だけで決まり、経路の履歴に依存しないこと。

There are two key points. (1) The random numbers are deterministic. (2) (Unless a target is subject to a Rare duplicate) the NP Mode score is determined solely by "whether that item is a target," and does not depend on the route's history.

重點有兩個。①亂數是確定性的。②(只要目標不涉及稀有重複)NP 模式的分數只取決於「該道具是否為目標」, 不依賴路徑的歷史。

この2点から、状態は $(s, m) = $(単発回数, 10連回数)という2変数だけで表現できる。 $N$ を10連の回数、予算を $B$ とすると、到達しうる状態は $s + mN \le B$ を満たす組だけなので、

From these two points, the state can be expressed with just two variables, $(s, m) = $ (single roll count, 10-Roll count). Letting $N$ be the number of pulls per 10-Roll and $B$ the budget, the reachable states are exactly the pairs satisfying $s + mN \le B$, so

由這兩點可知,狀態僅需以 $(s, m) = $(單抽次數, 10連次數)這兩個變數表示即可。 設 $N$ 為10連的抽數,預算為 $B$,則可到達的狀態僅為滿足 $s + mN \le B$ 的組合,因此

$$ dp[s][m] = \max\big(dp[s-1][m] + \Delta_{\text{単発}},\ dp[s][m-1] + \Delta_{\text{10連}}\big) $$

という2次元の表を埋めるだけのDPで厳密に解ける。したがって、従来の設計思想であるハッシュ化した状態や優先度付きキューを使うグラフ探索といった大掛かりな道具は不要で、 表のサイズは $O(B^2/N)$ と予算だけで決まる。これが、チケット1000〜3000枚規模でも非常に高速に(概ね1秒未満で)解ける理由である。

This can be solved exactly by simply filling in a 2D table using DP. This means large-scale machinery from the previous design, such as hashed states or graph search with a priority queue, is unnecessary; the table size is $O(B^2/N)$, determined by the budget alone. This is why it can be solved extremely quickly (generally in under a second) even at a scale of 1,000-3,000 tickets.

只需填滿這張二維表格的 DP 即可精確求解。因此,先前設計思路中使用雜湊化狀態或優先佇列的圖搜尋等大型工具都不再需要, 表格大小為 $O(B^2/N)$,僅由預算決定。這就是即使票券規模達 1000〜3000 張,也能極快速(大致在1秒內)求解的原因。

3. 実験方法

3. Experimental Method

3. 實驗方法

  • 対象ガチャ:パックマン(イベントガチャ)
  • ターゲット:ネコブリンキー・ネコインキー(確定枠プールの2種)
  • チケット予算:1000枚 / 初期シード:ランダムに抽出した1000個
  • Target gacha: Pacman (Event Gacha)
  • Targets: Nekoblinky and Nekoinky (the two characters in the guaranteed-slot pool)
  • Ticket budget: 1,000 / Initial seeds: 1,000 randomly sampled
  • 對象轉蛋:小精靈(活動轉蛋)
  • 目標:ネコブリンキー・ネコインキー(必中格池中的2種)
  • 票券預算:1000張 / 初始種子:隨機抽取的1000個

各シードについて、NPモードの探索結果と、以下3つの「最適化しない」素朴な戦略の獲得数を比較した。 NPモードについては、実際に選んだ単発回数・10連回数も併せて記録した。

For each seed, we compared the NP Mode search result against the counts obtained by the following three "unoptimized" naive strategies. For NP Mode, we also recorded the actual number of single rolls and 10-Rolls chosen.

針對每個種子,我們比較了 NP 模式的搜尋結果,與以下3種「未最佳化」的樸素策略的獲得數。 NP 模式方面,也一併記錄了實際選擇的單抽次數與10連次數。

  • 常に単発:予算を使い切るまで単発だけを引き続ける
  • 常に10連:予算を使い切るまで10連だけを引き続ける
  • 無作為:残り予算が10連可能な限り、単発/10連を50%ずつの確率で選ぶ
  • Always single: Keep rolling single only, until the budget is used up
  • Always 10-Roll: Keep rolling 10-Rolls only, until the budget is used up
  • Random: While the remaining budget still allows a 10-Roll, choose single/10-Roll with 50% probability each
  • 永遠單抽:一直單抽直到用完預算
  • 永遠10連:一直10連直到用完預算
  • 隨機:只要剩餘預算還能10連,就以各50%的機率選擇單抽/10連

4. 実験結果

4. Experimental Results

4. 實驗結果

1000シードにわたる獲得数の平均・改善率は以下の通り。

The average count and improvement rate across 1,000 seeds are as follows.

跨1000個種子的平均獲得數與改善率如下。

獲得数の分布を同一スケールで並べると、NPモードだけが明確に右(高スコア側)にシフトしている。

Lining up the distributions of counts obtained on the same scale, only NP Mode is clearly shifted to the right (the high-score side).

將獲得數的分佈以相同尺度並列後,只有 NP 模式明顯向右(高分側)偏移。

統計サマリー:

Statistical summary:

統計摘要:

NPモードが実際に選んだ「単発回数」「10連回数」の分布:

Distribution of the "single roll count" and "10-Roll count" actually chosen by NP Mode:

NP 模式實際選擇的「單抽次數」「10連次數」分佈:

5. 考察

5. Discussion

5. 考察

5.1 テーブル活用の効果

5.1 The Effect of Using the Table

5.1 善用表格的效果

NPモードは、予算1000枚で実現可能な単発回数・10連回数の組み合わせ(90通り以上)を漏れなく比較し、 そのシードにとって最も引きが良い配分を選んでいる。結果、平均獲得数は素朴な戦略に対して約30%(+43個)向上した。 「テーブルを確認する価値はどれくらいあるのか」ということを、初めて数値として示せたのがこの実験の核心である(§6で攻略上の意味を評価する)。

NP Mode exhaustively compares every achievable combination of single-roll and 10-Roll counts (90+ combinations) within a budget of 1,000, and picks the mix that suits that seed best. As a result, the average count obtained improved by about 30% (+43) over the naive strategies. The core of this experiment is that it shows, for the first time, a number for "how much is it worth checking the table" (§6 evaluates what this means in practice).

NP 模式會在預算1000張的範圍內,窮舉比較所有可實現的單抽次數與10連次數組合(90種以上), 為該種子選出最適合的分配。結果,平均獲得數比樸素策略提升了約30%(+43個)。 本次實驗的核心,在於首次以數字呈現出「查看表格究竟有多少價值」(§6 將評估其在攻略上的意義)。

5.2 素朴な戦略同士はほぼ差がない (これは当たり前かも)

5.2 There Is Almost No Difference Among the Naive Strategies (perhaps unsurprisingly)

5.2 樸素策略之間幾乎沒有差異 (這或許是理所當然的)

「常に単発」「常に10連」「無作為」の平均獲得数はいずれも145個前後で一致した。 ノーマルガチャ不介入時の確定枠の排出タイミングは単発・10連の内訳に関わらず一定なので、これは仕様から自然に予想される結果であり、 今回はそれを実験で定量的に確認したにすぎない。

"Always single," "Always 10-Roll," and "Random" all agreed at an average of around 145. Since the timing of guaranteed-slot drops, absent Normal Gacha involvement, stays fixed regardless of the single/10-Roll breakdown, this is a naturally expected result from the spec, and this experiment merely confirmed it quantitatively.

「永遠單抽」「永遠10連」「隨機」的平均獲得數皆一致落在145個左右。 由於在不介入普通轉蛋的情況下,必中格的排出時機不受單抽/10連比例影響而保持固定, 這是規格上自然可預期的結果,本次只是以實驗方式定量確認了這一點。

5.3 最適な配分は存在しない

5.3 There Is No Single Optimal Mix

5.3 不存在單一最佳分配

NPモードが選んだ単発回数(中央値380、範囲100〜740)・10連回数(中央値62、範囲26〜90)は大きくばらついており、 初期シードごとに最適な配分はまったく異なる。「10連をこのくらいで混ぜたら良い」といった一般論は成立せず、都度計算し直す価値がある。

The single-roll count (median 380, range 100-740) and 10-Roll count (median 62, range 26-90) chosen by NP Mode varied widely, and the optimal mix differs completely from one initial seed to another. A rule of thumb like "mix in about this many 10-Rolls" does not hold, and it is worth recalculating each time.

NP 模式所選擇的單抽次數(中位數380,範圍100〜740)與10連次數(中位數62,範圍26〜90)差異相當大, 每個初始種子的最佳分配完全不同。「10連大概混這麼多就好」這類經驗法則並不成立,值得每次重新計算。

6. ゲーム攻略上の意味

6. What This Means for Play

6. 在遊戲攻略上的意義

以前、ドロップ率だけからイベントガチャのNP効率(統率力あたりのNP獲得量。小さいほど効率的)を見積もったところ、 以下のような結果だった。

Previously, estimating Event Gacha NP efficiency (NP gained per unit of Cat Energy; lower is more efficient) from drop rates alone gave the following result.

先前僅以掉落率估算活動轉蛋的 NP 效率(每點統率力所獲得的 NP 量,數值越小越有效率)時, 得到以下結果。

イベント NP効率(統率/NP) 備考
強襲 約130 -
パックマン(最適化前) 約144 ドロップ率のみから見積もり
福引 約168 -
Event NP Efficiency (Energy/NP) Notes
超生命体強襲 ~130 -
Pacman (before optimization) ~144 Estimated from drop rate only
Lucky Gacha ~168 -
活動 NP 效率(統率/NP) 備註
超生命体強襲 約130 -
小精靈(最佳化前) 約144 僅以掉落率估算
招福轉蛋 約168 -

この時点でのパックマンは「NP効率では強襲にわずかに劣るが、アイテム・XPの副産物が非常に優秀 (福引比でアイテム3倍以上・XP20倍以上)なので、総合的には周回価値が高いイベント」という評価だった。

At this point, Pacman's assessment was "slightly worse than 超生命体強襲 in NP efficiency, but the item/XP byproducts are excellent (3x+ items, 20x+ XP compared to Lucky Gacha), so it is an event with high overall farming value."

此時對小精靈的評價是:「雖然 NP 效率略遜於超生命体強襲,但道具與 XP 的副產物非常優秀 (相較招福轉蛋,道具3倍以上、XP20倍以上),因此綜合來看是周回價值很高的活動」。

しかし本実験で確認した改善率(平均約29.8%)をそのまま適用すると、

However, applying the improvement rate confirmed in this experiment (about 29.8% on average) as is,

然而,若直接套用本次實驗確認的改善率(平均約29.8%),

144 ÷ 1.298 ≈ 111 統率/NP

144 ÷ 1.298 ≈ 111 Energy/NP

144 ÷ 1.298 ≈ 111 統率/NP

となる(素朴戦略の実験平均・約145個は、当初の見積もり144統率/NPの前提とほぼ一致しており、この換算は妥当と考えられる)。 つまりテーブルを見て最適な配分で引くだけで、パックマンのNP効率は強襲(130)を明確に上回る。 しかもパックマンには、ビックリマンのような30分の周回インターバルがなく好きな時に周回できること、 アイテム・XPの副産物が引き続き豊富であることという利点もある。 テーブルを利用する前提であれば、パックマンは現状確認されている中で最高クラスのNP周回イベントといえるだろう。

is obtained (the experimental average for the naive strategies, about 145, nearly matches the premise behind the original estimate of 144 Energy/NP, so this conversion is considered reasonable). In other words, simply rolling with the optimal mix while looking at the table clearly pushes Pacman's NP efficiency past 超生命体強襲 (130). Pacman also has the advantage of no 30-minute cooldown between runs like Bikkuriman, meaning you can farm whenever you like, and the item/XP byproducts remain plentiful. Assuming you use the table, Pacman appears to be the best-in-class NP farming event currently confirmed.

(樸素策略的實驗平均約145個,與最初估算的144統率/NP前提幾乎一致,因此可認為此換算是合理的)。 也就是說,只要看著表格以最佳分配抽取,小精靈的 NP 效率就會明顯超越超生命体強襲(130)。 而且小精靈沒有像聖魔大戰那樣30分鐘的周回間隔,可以隨時周回, 道具與 XP 的副產物也依然豐富。 若以善用表格為前提,小精靈可說是目前已確認中最頂級的 NP 周回活動

43億通りのシード値は単発何回分のデータがあれば絞り込めるか? How Many Single Rolls of Data Are Needed to Narrow Down 4.3 Billion Possible Seed Values? 43億種種子值,需要多少次單抽的資料才能縮小範圍?
PRNG

にゃんこ大戦争のガチャシステムは、32ビット整数を状態とする xorshift32 擬似乱数生成器(PRNG)で駆動されている。 シード値は $2^{32}-1 \approx 43$ 億通りという広大な空間に分布するが、 ガチャ結果(排出キャラクターの系列)を観測し続けると、初期シード値の候補は急速に絞り込まれる。

The Battle Cats gacha system is driven by an xorshift32 pseudo-random number generator (PRNG) whose state is a 32-bit integer. Seed values are distributed over the vast space of $2^{32}-1 \approx 4.3$ billion possibilities, but as you keep observing gacha results (the sequence of characters obtained), the candidates for the initial seed shrink rapidly.

《貓咪大戰爭》的轉蛋系統,是由以32位元整數為狀態的 xorshift32 偽亂數產生器(PRNG)驅動的。 種子值分佈於 $2^{32}-1 \approx 43$ 億種可能性的廣大空間中, 但只要持續觀察轉蛋結果(排出角色的序列),初始種子值的候選就會迅速縮小。

本稿では66 種のレアガチャと 5 種のノーマルガチャ、計 71 ガチャを対象とし、「単発$N$回分($N$連)の排出列を観測したとき、何割のシード値が一意に特定できるか」を 全シード全列挙(深さ優先探索)によって厳密に計算した実験を報告する(挙動が特殊なイベントガチャは今回は対象外とする)。

This article reports an experiment covering 66 Rare Gachas and 5 Normal Gachas (71 gachas in total), which exactly computes, via full enumeration of all seeds (depth-first search), "what fraction of seed values can be uniquely identified after observing a drop sequence of $N$ single rolls ($N$-Roll)" (Event Gachas, whose behavior is special, are excluded from this experiment).

本文以66種稀有轉蛋與5種普通轉蛋,共71種轉蛋為對象, 透過對全部種子進行完整列舉(深度優先搜尋),嚴謹計算了「觀察到單抽$N$次($N$連)的排出序列時,有多少比例的種子值能被唯一確定」的實驗結果 (行為較特殊的活動轉蛋本次不列入對象)。

主要な結論: 標準的な レアガチャでは 単発7回分 の観測で全シード値の 90% 以上を一意に特定できる。 最速のガチャでは 5連で 93%、最悪のガチャ(福引G)でも 20 連あれば 93% に到達する。 最悪ケースの上限(Nworst)は 9 連〜36 連とガチャによって大きく異なるが、 平均的なプレイヤーは 7 連程度で実用的な精度を得られる。 なお本実験の副産物として、一部のガチャ(基本・猫目・福引・福引G・ケリ姫)では 無限に観測を続けても永久に区別できないシード対が存在することが判明した。 これはアルゴリズム上の近似ではなく、xorshift32 の PRNG とリロール処理の組み合わせによる ガチャシステム固有の性質である(§7.5 参照)。

Main conclusion: For a standard Rare Gacha, observing 7 single rolls uniquely identifies 90% or more of all seed values. The fastest gacha reaches 93% at 5 rolls, and even the worst gacha (Lucky Gacha G) reaches 93% with 20 rolls. The worst-case bound (Nworst) varies widely by gacha, from 9 to 36 rolls, but the average player gets a practically useful accuracy at around 7 rolls. As a byproduct of this experiment, we also found that for some gachas (Basic, Catseye, Lucky, Lucky G, Princess Punt Sweets), seed pairs exist that can never be distinguished no matter how long you keep observing. This is not an algorithmic approximation, but a property inherent to the gacha system itself, arising from the combination of the xorshift32 PRNG and the reroll process (see §7.5).

主要結論: 對於標準的稀有轉蛋,觀察7次單抽即可唯一確定90%以上的所有種子值。 最快的轉蛋在5連時就能達到93%,即使是最差的轉蛋(招福轉蛋G)也只需20連即可達到93%。 最壞情況的上限(Nworst)因轉蛋而異,範圍為9連〜36連, 但一般玩家在約7連左右即可獲得實用上足夠的精確度。 此外,作為本次實驗的副產物,我們也發現部分轉蛋(基本・貓眼石・招福・招福G・公主踢騎士Sweets) 存在即使無限持續觀察也永遠無法區分的種子對。 這並非演算法上的近似,而是 xorshift32 的 PRNG 與重新抽選處理組合所造成的、 轉蛋系統本身固有的性質(詳見 §7.5)。

1. 問題設定

1. Problem Setup

1. 問題設定

1.1 xorshift32について

1.1 About xorshift32

1.1 關於 xorshift32

にゃんこ大戦争のガチャは以下の xorshift32 関数を用いて次の状態を計算する。

The Battle Cats gacha computes the next state using the following xorshift32 function.

《貓咪大戰爭》的轉蛋使用以下的 xorshift32 函式計算下一個狀態。

uint32_t xorshift32(uint32_t y) { y ^= y << 13; y ^= y >> 17; y ^= y << 15; return y; }

この関数は非ゼロな 32 ビット整数の全体 $\mathbb{S} = \{1, 2, \ldots, 2^{32}-1\}$ 上の全単射(置換)であり、$|\mathbb{S}| = 4{,}294{,}967{,}295$ が状態空間の大きさとなる。 ゼロは固定点($\mathrm{xorshift32}(0) = 0$)であるため、ゲームは非ゼロの初期シードのみを用いる。

This function is a bijection (permutation) on the set of non-zero 32-bit integers $\mathbb{S} = \{1, 2, \ldots, 2^{32}-1\}$, and $|\mathbb{S}| = 4{,}294{,}967{,}295$ is the size of the state space. Zero is a fixed point ($\mathrm{xorshift32}(0) = 0$), so the game only uses non-zero initial seeds.

此函式是非零32位元整數全體 $\mathbb{S} = \{1, 2, \ldots, 2^{32}-1\}$ 上的一個雙射(置換), $|\mathbb{S}| = 4{,}294{,}967{,}295$ 即為狀態空間的大小。 由於零是不動點($\mathrm{xorshift32}(0) = 0$),遊戲僅使用非零的初始種子。

1.2 1連のガチャ(getSinglePull)

1.2 A Single Roll (getSinglePull)

1.2 單抽轉蛋(getSinglePull)

シード $s$ から 1 回のガチャを行う関数を $\mathrm{pull}(s) = (c, s')$ と書く。 $c$ は排出されたキャラクター ID、$s' = \mathrm{xorshift32}(s)$ が次のシードである。 キャラクター選択は $s' \bmod |\text{キャラプール}|$ とレアリティ閾値によって決まる。

Let $\mathrm{pull}(s) = (c, s')$ denote the function that performs one gacha roll from seed $s$. $c$ is the ID of the dropped character, and $s' = \mathrm{xorshift32}(s)$ is the next seed. Character selection is determined by $s' \bmod |\text{character pool}|$ and the rarity threshold.

設 $\mathrm{pull}(s) = (c, s')$ 為從種子 $s$ 執行一次轉蛋的函式。 $c$ 為排出的角色 ID,$s' = \mathrm{xorshift32}(s)$ 為下一個種子。 角色的選擇由 $s' \bmod |\text{角色池}|$ 與稀有度門檻決定。

1.3 観測問題

1.3 The Observation Problem

1.3 觀測問題

プレイヤーが $N$ 連のガチャ結果 $c_1, c_2, \ldots, c_N$ を観測したとき、 初期シード $s_0 \in \mathbb{S}$ を推定する問題を考える。 すなわち、観測列と矛盾しないシードの集合

Consider the problem of estimating the initial seed $s_0 \in \mathbb{S}$ when a player has observed the gacha results $c_1, c_2, \ldots, c_N$ of $N$ rolls. That is, the set of seeds consistent with the observed sequence

考慮以下問題:當玩家觀察到 $N$ 連的轉蛋結果 $c_1, c_2, \ldots, c_N$ 時,推定初始種子 $s_0 \in \mathbb{S}$。也就是說,與觀測序列不矛盾的種子集合

$$ \mathcal{C}(c_1, \ldots, c_N) = \{ s \in \mathbb{S} : \mathrm{pull}^{(N)}(s) = (c_1, \ldots, c_N) \} $$

が $|\mathcal{C}| = 1$ になった時点で、$N$ 連の観測のみから初期シードが完全に特定される。

Once $|\mathcal{C}| = 1$, the initial seed is fully determined from only the $N$-roll observation.

一旦 $|\mathcal{C}| = 1$,僅憑 $N$ 連的觀測即可完全確定初始種子。

2. 数学的定義

2. Mathematical Definitions

2. 數學定義

以下の量を定義する。

We define the following quantities.

定義以下各量。

排出列写像 $f_N$

Drop Sequence Map $f_N$

排出序列映射 $f_N$

シード $s$ から $N$ 連ガチャを行ったときの排出列を

Let the drop sequence obtained by rolling $N$ times from seed $s$ be

將從種子 $s$ 進行 $N$ 連轉蛋所得到的排出序列記為

$$ f_N(s) = (c_1(s), c_2(s), \ldots, c_N(s)) $$

と書く。$f_0(s) = ()$(空列)とする。

We let $f_0(s) = ()$ (the empty sequence).

並設 $f_0(s) = ()$(空序列)。

一意化深さ $T(s)$

Uniqueness Depth $T(s)$

唯一化深度 $T(s)$

シード $s$ が $N$ 連の観測によって一意に特定される最小の $N$ を

Let the smallest $N$ at which seed $s$ is uniquely identified by an $N$-roll observation be

將能唯一確定種子 $s$ 所需的最小 $N$ 連觀測次數記為

$$ T(s) = \min\{ N \ge 0 : \forall t \neq s,\ f_N(s) \neq f_N(t) \} $$

と定義する。$T(s) = N$ は「$N-1$ 連時点では $s$ と同じ排出列を持つ別シードが存在するが、 $N$ 連目でその別シードと分岐する」ことを意味する。

$T(s) = N$ means that "at $N-1$ rolls there exists another seed sharing the same drop sequence as $s$, but it diverges from that other seed at the $N$-th roll."

$T(s) = N$ 代表「在 $N-1$ 連的時間點,存在另一個與 $s$ 排出序列相同的種子, 但在第 $N$ 連時開始與該種子分歧」。

一意化率 $A(N)$

Uniqueness Rate $A(N)$

唯一化率 $A(N)$

全シードのうち $N$ 連以内に一意化される割合を

Let the fraction of all seeds uniquely identified within $N$ rolls be

將所有種子中,在 $N$ 連以內被唯一確定的比例記為

$$ A(N) = \frac{|\{s \in \mathbb{S} : T(s) \le N\}|}{|\mathbb{S}|} $$

と定義する。$A(N)$ は $N$ の単調非減少関数であり、$A(0) = 0$、 $A(\infty) \le 1$ となる(後述の重複問題によりまれに $A(\infty) < 1$ になるケースがある)。

$A(N)$ is a monotonically non-decreasing function of $N$, with $A(0) = 0$ and $A(\infty) \le 1$ (due to the duplicate-collision issue discussed below, there are rare cases where $A(\infty) < 1$).

$A(N)$ 是 $N$ 的單調不減函數,滿足 $A(0) = 0$,且 $A(\infty) \le 1$ (因後述的重複問題,極少數情況下會出現 $A(\infty) < 1$)。

最悪ケース $N_{\rm worst}$

Worst Case $N_{\rm worst}$

最壞情況 $N_{\rm worst}$

$$ N_{\rm worst} = \max_{s \in \mathbb{S}} T(s) $$

$N_{\rm worst}$ 連観測すれば、どの初期シードであっても必ず一意に特定できる (ただし $A(N_{\rm worst}) = 1$ でない場合を除く)。

Observing $N_{\rm worst}$ rolls is guaranteed to uniquely identify any initial seed (except when $A(N_{\rm worst}) \neq 1$).

只要觀察 $N_{\rm worst}$ 連,無論是哪個初始種子都必定能唯一確定 (但 $A(N_{\rm worst}) = 1$ 不成立的情況除外)。

Witness ペア

Witness Pair

Witness 對

$f_{N-1}(s) = f_{N-1}(t)$ かつ $f_N(s) \neq f_N(t)$ を満たす最大深さ $N = N_{\rm worst}$ のペア $(s, t)$ を Witness ペアと呼ぶ。これは「$N_{\rm worst} - 1$ 連では区別できないが、 $N_{\rm worst}$ 連目で初めて分岐するシードの対」である。

A pair $(s, t)$ at the maximum depth $N = N_{\rm worst}$ satisfying $f_{N-1}(s) = f_{N-1}(t)$ and $f_N(s) \neq f_N(t)$ is called a Witness pair. This is "a pair of seeds that cannot be distinguished at $N_{\rm worst} - 1$ rolls, but first diverges at the $N_{\rm worst}$-th roll."

在最大深度 $N = N_{\rm worst}$ 時,滿足 $f_{N-1}(s) = f_{N-1}(t)$ 且 $f_N(s) \neq f_N(t)$ 的配對 $(s, t)$ 稱為 Witness 對。這是一對「在 $N_{\rm worst} - 1$ 連時無法區分, 但在第 $N_{\rm worst}$ 連才首次分歧的種子」。

例として、1.11億DL ガチャの Witness ペアを示す。

As an example, the Witness pair for the 111M DL gacha is shown below.

以下以 1.11億DL 轉蛋為例,展示其 Witness 對。

Witness ペア(1.11億DL ガチャ、Nmin=12)
s = 782,350,213    t = 574,329,652

f11(s) = f11(t)    ← 11連では同一列
f12(s) ≠ f12(t)    ← 12連目で初めて分岐
Witness Pair (111M DL gacha, Nmin=12)
s = 782,350,213    t = 574,329,652

f11(s) = f11(t)    ← same sequence at 11 rolls
f12(s) ≠ f12(t)    ← first diverges at the 12th roll
Witness 對(1.11億DL 轉蛋,Nmin=12)
s = 782,350,213    t = 574,329,652

f11(s) = f11(t)    ← 11連時序列相同
f12(s) ≠ f12(t)    ← 第12連才首次分歧

3. アルゴリズム:深さ優先探索による全列挙

3. Algorithm: Full Enumeration via Depth-First Search

3. 演算法:透過深度優先搜尋進行完整列舉

3.1 基本アイデア

3.1 Basic Idea

3.1 基本構想

全シードを「同一の排出列を持つグループ(バケット)」に分割する操作を、 深さ(連数)を増やしながら繰り返す。

We repeat the operation of splitting all seeds into "groups (buckets) sharing the same drop sequence," while increasing the depth (roll count).

反覆進行「將所有種子分割為具有相同排出序列的群組(桶)」的操作,並逐步增加深度(連數)。

depth 0 : [s₁, s₂, s₃, …, s_{4294967295}] ← 全シードが1バケット ↓ 1連目を引く(キャラIDで分岐) depth 1 : [bucket_{c₁=A}] [bucket_{c₁=B}] … [bucket_{c₁=K}] ↓ 2連目を引く depth 2 : さらに細分化(排出列 (c₁,c₂) でグループ化) ⋮ depth N : |bucket| = 1 → このシードの T(s) = N(一意化完了) |bucket| > 1 → さらに深く探索 depth 0 : [s₁, s₂, s₃, …, s_{4294967295}] ← all seeds in 1 bucket ↓ roll #1 (split by character ID) depth 1 : [bucket_{c₁=A}] [bucket_{c₁=B}] … [bucket_{c₁=K}] ↓ roll #2 depth 2 : further split (grouped by drop sequence (c₁,c₂)) ⋮ depth N : |bucket| = 1 → this seed's T(s) = N (uniqueness reached) |bucket| > 1 → search deeper depth 0 : [s₁, s₂, s₃, …, s_{4294967295}] ← 所有種子皆在1個桶中 ↓ 抽第1連(依角色ID分歧) depth 1 : [bucket_{c₁=A}] [bucket_{c₁=B}] … [bucket_{c₁=K}] ↓ 抽第2連 depth 2 : 進一步細分(依排出序列 (c₁,c₂) 分組) ⋮ depth N : |bucket| = 1 → 此種子的 T(s) = N(唯一化完成) |bucket| > 1 → 繼續向下搜尋

3.2 実装の要点

3.2 Implementation Highlights

3.2 實作要點

  • ソートによるバケット分割: 各深さでシードをキャラ ID でソートし、連続する同値要素をひとつのバケットとみなす。 $O(M \log M)$ の操作で深さ1層分の分割が完了する。
  • 枝刈り: バケットサイズが 1 になったシードは以降の探索から除外する。 これにより探索木の大部分が早い段階で枝刈りされる。
  • OpenMP 並列化: 独立したバケットを複数コアで並列処理。32 コアを使用。
  • 計算量: 最大深さ $N_{\rm worst}$ 層の探索で、総計算時間は ガチャの構造によって 4 分〜90 分と大きく異なる。
  • Bucket splitting by sorting: At each depth, sort seeds by character ID and treat consecutive equal elements as one bucket. One layer of depth is split in $O(M \log M)$.
  • Pruning: Seeds whose bucket size has reached 1 are excluded from further search. This prunes most of the search tree at an early stage.
  • OpenMP parallelization: Independent buckets are processed in parallel across multiple cores. 32 cores are used.
  • Complexity: Searching down to a maximum depth of $N_{\rm worst}$ layers, total compute time ranges widely from 4 to 90 minutes depending on the gacha's structure.
  • 透過排序進行分桶: 在每個深度依角色 ID 對種子排序,將連續相同的元素視為一個桶。 以 $O(M \log M)$ 的操作完成一層深度的分割。
  • 剪枝: 桶大小已變為1的種子將從後續搜尋中排除,藉此讓搜尋樹的大部分能在早期就被剪除。
  • OpenMP 平行化: 將獨立的桶以多核心平行處理,使用32核心。
  • 計算量: 搜尋到最大深度 $N_{\rm worst}$ 層,總計算時間依轉蛋結構不同,範圍在4分鐘〜90分鐘之間差異甚大。
実装上の注意(重複衝突問題): 一部のガチャでは、レア被り処理により、 2 つのシードが同一の次シードに収束する「衝突」が発生する。 この衝突シードは永続的にバケットサイズが 2 以上になるため $T(s) = \infty$ となり、 $A(\infty) < 1$ となる。例えば福引G では $A(\infty) \approx 97.35\%$ にとどまる。
Implementation note (duplicate collision issue): For some gachas, the Rare duplicate handling causes two seeds to converge to the same next seed — a "collision." Such colliding seeds keep a bucket size of 2 or more forever, so $T(s) = \infty$ and $A(\infty) < 1$. For example, Lucky G stays at $A(\infty) \approx 97.35\%$.
實作上的注意事項(重複衝突問題): 部分轉蛋因稀有重複處理,會使兩個種子收斂至同一個下一個種子,發生「衝突」。 這類衝突種子的桶大小會永久維持在2以上,因此 $T(s) = \infty$,導致 $A(\infty) < 1$。 例如招福G 就僅能到達 $A(\infty) \approx 97.35\%$。

4. 実験設定

4. Experimental Setup

4. 實驗設定

  • 対象ガチャ: 71 種(rare 66 種 + normal 5 種)
  • シード空間: $|\mathbb{S}| = 4{,}294{,}967{,}295$(全列挙)
  • 実行環境: HPC クラスタ、Slurm ジョブアレイ
  • 並列化: OpenMP(32 コア / 実験)、最大 4 実験同時実行
  • コンパイラ: g++ -O3 -march=native -fopenmp -std=c++17
  • 計算時間: 1 実験あたり 4〜90 分(平均 13 分)
  • Target gachas: 71 (66 rare + 5 normal)
  • Seed space: $|\mathbb{S}| = 4{,}294{,}967{,}295$ (full enumeration)
  • Execution environment: HPC cluster, Slurm job array
  • Parallelization: OpenMP (32 cores / experiment), up to 4 experiments concurrently
  • Compiler: g++ -O3 -march=native -fopenmp -std=c++17
  • Compute time: 4-90 minutes per experiment (13 minutes on average)
  • 對象轉蛋: 71種(稀有66種 + 普通5種)
  • 種子空間: $|\mathbb{S}| = 4{,}294{,}967{,}295$(完整列舉)
  • 執行環境: HPC 叢集、Slurm 作業陣列
  • 平行化: OpenMP(32核心/實驗),最多同時執行4個實驗
  • 編譯器: g++ -O3 -march=native -fopenmp -std=c++17
  • 計算時間: 每個實驗4〜90分鐘(平均13分鐘)

5. 実験結果

5. Experimental Results

5. 實驗結果

5.1 $N_{\rm worst}$ の分布

5.1 Distribution of $N_{\rm worst}$

5.1 $N_{\rm worst}$ 的分佈

71 ガチャの $N_{\rm worst}$(最悪ケース)の分布を以下に示す。 レアガチャの 57.7%(41/71)が $N_{\rm worst} = 12$ に集中しており、 標準的なガチャのプール構成を反映している。

The distribution of $N_{\rm worst}$ (the worst case) across the 71 gachas is shown below. 57.7% of Rare Gachas (41/71) are concentrated at $N_{\rm worst} = 12$, reflecting the pool composition of a standard gacha.

以下呈現71種轉蛋的 $N_{\rm worst}$(最壞情況)分佈。 稀有轉蛋中有57.7%(41/71)集中在 $N_{\rm worst} = 12$,反映了標準轉蛋的角色池組成。

Nworst ガチャ数 割合 分布 代表ガチャ
9 3 4.2% レジェンドガチャ、プラチナガチャ
10 1 1.4% プラチナガチャ旧
12 41 57.7% 超極ネコ祭、超ネコ祭、極ネコ祭 ほか多数
13 16 22.5% Fate、エヴァ、ハロウィン、バスターズ祭 ほか
14 2 2.8% まどマギ、ソニック
15 2 2.8% 基本(ノーマル)、消滅都市
16 1 1.4% マタタビ(ノーマル)
17 1 1.4% 福引(ノーマル)
19 1 1.4% メルスト
25 1 1.4% 猫目(ノーマル)
33 1 1.4% ケリ姫
36 1 1.4% 福引G(ノーマル)
Nworst # of Gachas Share Distribution Representative Gachas
9 3 4.2% Legend Capsules, Platinum Capsules
10 1 1.4% プラチナガチャ旧 (old Platinum Capsules)
12 41 57.7% SUPERFEST, UBERFEST, EPICFEST, and many others
13 16 22.5% Fate/Stay Night, Evangelion, Halloween, BUSTERFEST, and others
14 2 2.8% Puella Magi Madoka Magica, Sonic the Hedgehog
15 2 2.8% Basic (Normal), Shoumetsu Toshi
16 1 1.4% Catfruit (Normal)
17 1 1.4% Lucky (Normal)
19 1 1.4% Merc Storia
25 1 1.4% Catseye (Normal)
33 1 1.4% Princess Punt Sweets
36 1 1.4% Lucky G (Normal)
Nworst 轉蛋數 比例 分佈 代表轉蛋
9 3 4.2% 傳說轉蛋、白金轉蛋
10 1 1.4% プラチナガチャ旧(舊版白金轉蛋)
12 41 57.7% 超極貓咪祭、超級貓咪祭、極級貓咪祭 等多數
13 16 22.5% Fate/stay night [HF]、福音戰士、萬聖節轉蛋、破壞者祭 等
14 2 2.8% 魔法少女小圓、音速小子
15 2 2.8% 基本(普通)、消滅都市
16 1 1.4% 貓薄荷(普通)
17 1 1.4% 招福(普通)
19 1 1.4% 梅露可物語
25 1 1.4% 貓眼石(普通)
33 1 1.4% 公主踢騎士Sweets
36 1 1.4% 招福G(普通)

5.2 全体統計

5.2 Overall Statistics

5.2 整體統計

指標 最小 平均 中央値 最大
Nworst 9 13.25 12 36
E[T](平均特定連数) 5.07 6.78 6.44 15.90
p50(中央値) 5 6.55 6 16
p75(75 パーセンタイル) 5 7.37 7 18
p90(90 パーセンタイル) 5 7.51 7 20
p95(95 パーセンタイル) 6 7.62 7 21
Metric Min Mean Median Max
Nworst 9 13.25 12 36
E[T] (mean rolls to identify) 5.07 6.78 6.44 15.90
p50 (median) 5 6.55 6 16
p75 (75th percentile) 5 7.37 7 18
p90 (90th percentile) 5 7.51 7 20
p95 (95th percentile) 6 7.62 7 21
指標 最小 平均 中位數 最大
Nworst 9 13.25 12 36
E[T](平均特定連數) 5.07 6.78 6.44 15.90
p50(中位數) 5 6.55 6 16
p75(第75百分位數) 5 7.37 7 18
p90(第90百分位數) 5 7.51 7 20
p95(第95百分位數) 6 7.62 7 21

5.3 代表ガチャの $A(N)$ 比較

5.3 Comparing $A(N)$ for Representative Gachas

5.3 代表轉蛋的 $A(N)$ 比較

きわめて対照的な4ガチャの一意化率 $A(N)$ を比較する。 標準的な レアガチャ(超極ネコ祭)と、最速・最遅・特殊の3種。

We compare the uniqueness rate $A(N)$ of four highly contrasting gachas: a standard Rare Gacha (SUPERFEST), and three others representing the fastest, the slowest, and a special case.

比較4個對比極為強烈的轉蛋的唯一化率 $A(N)$:標準的稀有轉蛋(超極貓咪祭), 以及最快、最慢、特殊這3種。

排出列の長さ N レジェンドガチャ
Nworst=9
超極ネコ祭
Nworst=12
メルスト
Nworst=19
福引G
Nworst=36
4 0.11% 1.74% 0.00% 0.00%
5 93.4% 22.1% 0.00% 0.00%
6 100.0% 75.5% 0.20% 0.00%
7 99.2% 2.7% 0.00%
8 99.98% 16.4% 0.00%
9 ≈100% 50.2% 0.006%
10 ≈100% 86.7% 0.09%
11 ≈100% 98.3% 0.69%
12 ≈100% 99.8% 3.1%
16 ≈100% 54.0%
20 93.1%
36 97.4%
Drop Sequence Length N Legend Capsules
Nworst=9
SUPERFEST
Nworst=12
Merc Storia
Nworst=19
Lucky G
Nworst=36
4 0.11% 1.74% 0.00% 0.00%
5 93.4% 22.1% 0.00% 0.00%
6 100.0% 75.5% 0.20% 0.00%
7 99.2% 2.7% 0.00%
8 99.98% 16.4% 0.00%
9 ≈100% 50.2% 0.006%
10 ≈100% 86.7% 0.09%
11 ≈100% 98.3% 0.69%
12 ≈100% 99.8% 3.1%
16 ≈100% 54.0%
20 93.1%
36 97.4%
排出序列長度 N 傳說轉蛋
Nworst=9
超極貓咪祭
Nworst=12
梅露可物語
Nworst=19
招福G
Nworst=36
4 0.11% 1.74% 0.00% 0.00%
5 93.4% 22.1% 0.00% 0.00%
6 100.0% 75.5% 0.20% 0.00%
7 99.2% 2.7% 0.00%
8 99.98% 16.4% 0.00%
9 ≈100% 50.2% 0.006%
10 ≈100% 86.7% 0.09%
11 ≈100% 98.3% 0.69%
12 ≈100% 99.8% 3.1%
16 ≈100% 54.0%
20 93.1%
36 97.4%

※ 「—」はその深さより前に収束済み(A(N)≈A(Nworst))、または N>Nworst を意味する。 福引G の A(36)=97.4% は、衝突シードの存在により 100% に到達しない。

* "—" means already converged before this depth (A(N)≈A(Nworst)), or N>Nworst. Lucky G's A(36)=97.4% does not reach 100% because of the presence of colliding seeds.

※「—」代表在此深度之前已收斂(A(N)≈A(Nworst)),或 N>Nworst。 招福G 的 A(36)=97.4% 因存在衝突種子,無法達到100%。

6. インタラクティブ詳細ビューア

6. Interactive Detail Viewer

6. 互動式詳細檢視器

ガチャを選択すると $A(N)$ カーブと詳細統計が表示される。 「比較に追加」で複数ガチャのカーブを重ねて表示できる(最大4本)。

Selecting a gacha displays its $A(N)$ curve and detailed statistics. Use "Add to compare" to overlay the curves of multiple gachas (up to 4).

選擇轉蛋後,會顯示其 $A(N)$ 曲線與詳細統計。可透過「加入比較」重疊顯示多個轉蛋的曲線(最多4條)。

種別
Type
種別
Nworst(最悪)
Nworst (worst)
Nworst(最壞)
E[T](平均)
E[T] (mean)
E[T](平均)
p50(中央値)
p50 (median)
p50(中位數)
p75
p90
p95
p99
最大到達 A(N)
Max reached A(N)
最大到達 A(N)
計算時間
Compute time
計算時間

A(N) テーブル(各連数での一意化率)

A(N) Table (uniqueness rate at each roll count)

A(N) 表格(各連數的唯一化率)

N A(N) 進捗 Progress 進度

7. 考察

7. Discussion

7. 討論

7.1 実用上の含意

7.1 Practical Implications

7.1 實用上的意義

標準的なレアガチャでは 7連 の観測で全シードの 90% 以上が一意に特定できる。 これは「10回程度の」排出列の入力を求めていた従来の実装より少なく、実用上十分な精度と言える。 さらに 8 連では 99.9% 超となり、 実際のシード値特定には 8〜10 連程度のデータがあれば十分と結論できる。

For a standard Rare Gacha, observing 7 rolls uniquely identifies 90% or more of all seeds. This is fewer than the previous implementation, which asked for a drop sequence of "around 10 rolls," and can be considered sufficiently accurate for practical use. Furthermore, it exceeds 99.9% at 8 rolls, so we can conclude that data of around 8-10 rolls is sufficient for practical seed identification.

對於標準的稀有轉蛋,觀察7連即可唯一確定90%以上的所有種子。 這比先前實作要求輸入「約10次」排出序列還要少,可說是實用上足夠的精確度。 再者,8連時已超過99.9%, 因此可得出結論:實際確定種子值只需8〜10連左右的資料即可

7.2 情報量の急増

7.2 The Rapid Surge in Information

7.2 資訊量的急遽增加

$A(N)$ のグラフを見ると、単発が1回分増えるごとの情報量の増加が非線形であることがわかる。 例えば超極ネコ祭の場合:

Looking at the $A(N)$ graph, we can see that the increase in information per additional single roll is non-linear. For example, for SUPERFEST:

觀察 $A(N)$ 圖表可知,每增加一次單抽所帶來的資訊量增加是非線性的。以超極貓咪祭為例:

  • N = 5 → N = 6:22.1% → 75.5%(+53.4ポイント)
  • N = 6 → N = 7:75.5% → 99.2%(+23.7ポイント)
  • N = 7 → N = 8:99.2% → 99.98%(+0.78ポイント)
  • N = 5 → N = 6: 22.1% → 75.5% (+53.4 points)
  • N = 6 → N = 7: 75.5% → 99.2% (+23.7 points)
  • N = 7 → N = 8: 99.2% → 99.98% (+0.78 points)
  • N = 5 → N = 6:22.1% → 75.5%(+53.4個百分點)
  • N = 6 → N = 7:75.5% → 99.2%(+23.7個百分點)
  • N = 7 → N = 8:99.2% → 99.98%(+0.78個百分點)

6連目と 7連目で大部分のシードが一意化され、それ以降は指数関数的に減衰する。 これは「シードが排出列に乗せる情報量が急速に蓄積される」ことを示しており、 理論的には自明でないが実験によって確認できた。

Most seeds become uniquely identified at rolls 6 and 7, after which the remainder decays exponentially. This shows that "the information a seed carries in its drop sequence accumulates rapidly," which is not theoretically obvious but was confirmed experimentally.

在第6連與第7連時,大部分種子已被唯一化,此後則呈指數衰減。 這顯示了「種子附載於排出序列中的資訊量會迅速累積」,理論上並非顯而易見,但透過實驗得以確認。

7.3 最悪ケースと平均の乖離

7.3 The Gap Between Worst Case and Average

7.3 最壞情況與平均值的落差

$N_{\rm worst}$ と $E[T]$ の比($N_{\rm worst} / E[T]$)は、本実験では 1.77〜2.29 の範囲にある。 これは「最悪ケースは平均の約 2 倍の観測を必要とする」ことを意味する。 この乖離の原因は、ごく少数の区別困難なシードが長い共通プレフィックスを持つためである。

The ratio of $N_{\rm worst}$ to $E[T]$ ($N_{\rm worst} / E[T]$) falls in the range 1.77-2.29 in this experiment. This means "the worst case requires roughly twice as many observations as the average." The cause of this gap is that a very small number of hard-to-distinguish seeds share a long common prefix.

本次實驗中,$N_{\rm worst}$ 與 $E[T]$ 的比值($N_{\rm worst} / E[T]$)落在1.77〜2.29的範圍內。 這代表「最壞情況所需的觀測次數約為平均值的2倍」。 造成此落差的原因,在於極少數難以區分的種子擁有較長的共同前綴。

7.4 ガチャ構造との関係

7.4 Relationship to Gacha Structure

7.4 與轉蛋結構的關係

$N_{\rm worst}$ の大小はガチャのプール構成と密接に関係する。

The magnitude of $N_{\rm worst}$ is closely related to the gacha's pool composition.

$N_{\rm worst}$ 的大小與轉蛋的角色池組成密切相關。

  • $N_{\rm worst}$ が小さいガチャ(9〜12): キャラ数が多く、各連で多様な排出パターンが生じる。 超極ネコ祭・超ネコ祭などのネコ祭系がこれにあたる。 レジェンドガチャ・プラチナガチャはレアキャラ確率が高く、 排出列の情報密度が非常に高い。
  • $N_{\rm worst}$ が大きいガチャ(19〜36): キャラ数が少なく、多くのシードが長い共通プレフィックスを持つ。 福引G はアイテム種が少なく重複が多いため、 最大 36 連観測しても 2.65% のシードは特定不能である。
  • Gachas with small $N_{\rm worst}$ (9-12): Many characters, producing diverse drop patterns on each roll. The Festival family (SUPERFEST, UBERFEST, etc.) falls into this category. Legend Capsules and Platinum Capsules have high Rare-character probability, giving their drop sequences very high information density.
  • Gachas with large $N_{\rm worst}$ (19-36): Few characters, so many seeds share a long common prefix. Lucky G has few item types and many duplicates, so even after observing up to 36 rolls, 2.65% of seeds remain unidentifiable.
  • $N_{\rm worst}$ 較小的轉蛋(9〜12): 角色數量多,每連都會產生多樣化的排出模式。超極貓咪祭、超級貓咪祭等貓咪祭系列即屬此類。 傳說轉蛋、白金轉蛋的稀有角色機率高,排出序列的資訊密度非常高。
  • $N_{\rm worst}$ 較大的轉蛋(19〜36): 角色數量少,許多種子擁有較長的共同前綴。招福G 因道具種類少、重複多, 即使觀察多達36連,仍有2.65%的種子無法確定。

7.5 衝突シードの存在:ガチャシステム固有の性質か、計算上の人工物か

7.5 Existence of Colliding Seeds: An Inherent Property of the Gacha System, or a Computational Artifact?

7.5 衝突種子的存在:轉蛋系統固有的性質,還是計算上的人工產物?

一部のガチャ(基本、猫目、福引、福引G、ケリ姫など)では $A(\infty) < 1$ となる。 これがアルゴリズム上の近似による現象ではなく ガチャシステム固有の真の衝突であることを、 実際の初期シード対を発見して実証した。

For some gachas (Basic, Catseye, Lucky, Lucky G, Princess Punt Sweets, etc.), $A(\infty) < 1$. We demonstrated that this is not a phenomenon caused by an algorithmic approximation, but a genuine collision inherent to the gacha system, by actually finding initial seed pairs that exhibit it.

部分轉蛋(基本、貓眼石、招福、招福G、公主踢騎士Sweets 等)會出現 $A(\infty) < 1$ 的情形。 我們透過實際找出初始種子對,證實這並非演算法上的近似所造成的現象, 而是轉蛋系統固有的真實衝突。

衝突発生メカニズム

The Collision Mechanism

衝突發生機制

レア被りは、 直前と同じキャラが出た場合に PRNG を追加ステップ進める機構である。 これにより、リロールが発動した状態と 発動しなかった別の状態が同一の (char_id, nextSeed) を返すことがある。

Rare duplicate handling is a mechanism that advances the PRNG an extra step when the same character comes up as the previous one. Because of this, a state where a reroll fired and a different state where it did not can sometimes return the same (char_id, nextSeed).

稀有重複處理是一種機制:當出現與前一次相同的角色時,會讓 PRNG 多前進一步。 因此,觸發了重新抽選的狀態,與沒有觸發的另一個狀態,有時會回傳相同的 (char_id, nextSeed)

具体的には、深さ 2 の PRNG 状態 $v \neq w$ が存在し、 共通の depth-1 キャラ $c_1$(= リロールの基準)に対して $$\texttt{getSinglePull}(v,\, c_1) = \texttt{getSinglePull}(w,\, c_1)$$ が成立するとき、$v$ と $w$ は以降のテーブルで完全一致する(なお、実際に存在するかはさておき、リロールに至る共通部分の長さは自然に延長が可能)。 xorshift32 は決定論的全単射であるから、 nextSeed が一致すれば未来の無限列は自動的に同一となる。

Specifically, when there exist depth-2 PRNG states $v \neq w$ such that, for a common depth-1 character $c_1$ (the basis for the reroll), $$\texttt{getSinglePull}(v,\, c_1) = \texttt{getSinglePull}(w,\, c_1)$$ holds, then $v$ and $w$ coincide completely in the table from then on (setting aside whether it actually occurs, the length of the common prefix leading up to the reroll can naturally be extended). Since xorshift32 is a deterministic bijection, once the nextSeed matches, the infinite future sequence automatically becomes identical.

具體而言,若存在深度2的 PRNG 狀態 $v \neq w$,且對於共同的深度1角色 $c_1$(= 重新抽選的基準)滿足 $$\texttt{getSinglePull}(v,\, c_1) = \texttt{getSinglePull}(w,\, c_1)$$ 則 $v$ 與 $w$ 在此後的表格中會完全一致(此外,先撇開是否實際存在,抵達重新抽選為止的共同部分長度自然可以延伸)。 由於 xorshift32 是決定性雙射,只要 nextSeed 一致,未來的無限序列就會自動變得完全相同。

再現可能な証拠

Reproducible Evidence

可重現的證據

実際に以下の通り各ガチャの衝突初期シード対を発見し、 100,000連のシミュレーションで完全一致を確認した。

We actually found the colliding initial seed pairs for each gacha as shown below, and confirmed an exact match through a simulation of 100,000 rolls.

我們實際找出各轉蛋的衝突初始種子對,如下所示,並透過100,000連的模擬確認了其完全一致。

ガチャ 初期シード $s$ 初期シード $t$ 1連目 2連目(合流点)
福引G 151,879 2,147,697,943 ネコビタンA XP10万ex
ケリ姫 393,247 2,416,607,259 ウシ姫 剣士
基本 3,155,901,415 5,092,948 働きネコ仕事効率 キモネコ
猫目 1,394,018 1,747,080,240 EX猫目 XP3万
Gacha Initial Seed $s$ Initial Seed $t$ Roll 1 Roll 2 (convergence point)
Lucky G 151,879 2,147,697,943 Catamin [A] 100000 XP
Princess Punt Sweets 393,247 2,416,607,259 ウシ姫 剣士
Basic 3,155,901,415 5,092,948 Worker Cat Rate キモネコ
Catseye 1,394,018 1,747,080,240 Special Catseye 30000 XP
轉蛋 初始種子 $s$ 初始種子 $t$ 第1連 第2連(合流點)
招福G 151,879 2,147,697,943 喵力達A XP 100000
公主踢騎士Sweets 393,247 2,416,607,259 ウシ姫 剣士
基本 3,155,901,415 5,092,948 工作狂貓的工作效率 キモネコ
貓眼石 1,394,018 1,747,080,240 EX貓眼石 XP 30000

結論

Conclusion

結論

$A(\infty) < 1$ はアルゴリズム的人工物ではなく、 レア被りの副作用としてガチャシステム自体に内在する真の衝突である。 衝突シードの割合は 0.002%(基本)〜 2.65%(福引G)であり、 最終的に合流するため実用上の影響は皆無だが、理論的には「無限に観測しても区別不能なシード対」が実在する。

$A(\infty) < 1$ is not an algorithmic artifact, but a genuine collision inherent to the gacha system itself as a side effect of Rare duplicate handling. The proportion of colliding seeds ranges from 0.002% (Basic) to 2.65% (Lucky G); since they eventually converge, there is no practical impact, but theoretically, "seed pairs that cannot be distinguished no matter how long you observe" do exist.

$A(\infty) < 1$ 並非演算法上的人工產物,而是稀有重複處理的副作用, 是轉蛋系統本身固有的真實衝突。衝突種子的比例介於0.002%(基本)〜2.65%(招福G)之間, 由於最終會合流,實用上並無影響,但理論上確實存在「無論觀察多久都無法區分的種子對」。

重なり窓と同時実現可能期間のモデル A Model for Overlapping Windows and Simultaneous Feasibility Periods 重疊視窗與可同時實現期間的模型

ガチャイベントの開催期間を見ていると、 「ある基準時刻から見て、複数の期間に同時に届くか」 という問題に出会うことがある。 ここでは個別事情は離れ、区間と観測窓の問題として整理する。

When looking at the holding periods of gacha events, one sometimes encounters the question of "whether, viewed from a given reference time, multiple periods can be reached at once." Here we set aside the specifics and formalize this as a problem of intervals and observation windows.

在觀察轉蛋活動的舉辦期間時,有時會遇到「從某個基準時刻來看,是否能同時觸及多個期間」這樣的問題。 在此先撇開個別情況,將其整理為區間與觀測視窗的問題。

基準時刻を \(t\) とし、2つの窓

Let the reference time be \(t\), and consider two windows

設基準時刻為 \(t\),並考慮兩個視窗

$$ T_1(t)=[t-a,t+b] $$ $$ T_2(t)=[t-c,t+d] $$

を考える。ただし

where

其中

$$ 0<a\le c,\quad 0<b\le d $$

とする。このとき常に

holds. In this case, it always holds that

成立。此時恆有

$$ T_1(t)\subseteq T_2(t) $$

が成り立つ。すなわち、\(T_2\) は \(T_1\) を左右に拡張した窓である。

That is, \(T_2\) is a window that extends \(T_1\) to the left and right.

也就是說,\(T_2\) 是將 \(T_1\) 向左右擴展後的視窗。

1. 1つのイベントを覆える基準時刻

1. Reference Times That Can Cover One Event

1. 能覆蓋單一活動的基準時刻

イベント期間を

Let the event period be

設活動期間為

$$ A=[A_s,A_e] $$

とする。まず、窓

First, we say that window

首先,我們稱視窗

$$ T_1(t)=[t-a,t+b] $$

がイベント \(A\) を覆うとは

covers event \(A\) when

覆蓋活動 \(A\),是指滿足

$$ [t-a,t+b]\cap[A_s,A_e]\ne\varnothing $$

を満たすこととする。

is satisfied.

此條件。

共通部分が空になるのは

The intersection is empty when

交集為空的情況為

  • 窓が完全に左にある:\(t+b<A_s\)
  • 窓が完全に右にある:\(t-a>A_e\)
  • The window is entirely to the left: \(t+b<A_s\)
  • The window is entirely to the right: \(t-a>A_e\)
  • 視窗完全在左側:\(t+b<A_s\)
  • 視窗完全在右側:\(t-a>A_e\)

であるから、その否定として

so, negating this, we get

因此,取其否定可得

$$ t+b\ge A_s \quad\land\quad t-a\le A_e $$

すなわち

that is

亦即

$$ A_s-b\le t\le A_e+a $$

である。 したがって、イベント \(A\) を覆える基準時刻の集合は

Therefore, the set of reference times that can cover event \(A\) is

因此,能覆蓋活動 \(A\) 的基準時刻集合為

$$ F_1(A)=[A_s-b,A_e+a] $$

となる。

.

同様に、広い窓では

Likewise, for the wide window

同樣地,對於較寬的視窗

$$ F_2(A)=[A_s-d,A_e+c] $$

である。

holds.

成立。

相手イベントが存在しうる候補範囲

The Candidate Range Where a Counterpart Event Can Exist

另一活動可能存在的候選範圍

ただし、実際に知りたいのは 「どの時刻で A を引けるか」だけではなく、 「Aと同時に成立しうる別イベントが、どの範囲に存在しうるか」 であることも多い。

In practice, however, what we often want to know is not just "at which times can A be reached," but "within what range could a different event, one that can coincide with A, exist."

然而,實際上想知道的往往不只是「在哪些時刻能觸及 A」, 而是「能與 A 同時成立的另一個活動,可能存在於哪個範圍」。

そのため、 \(t\in F_1(A)\) の範囲で基準時刻を動かし、 その都度の窓 \(T_1(t)\) 全体の到達範囲を考える。

So we move the reference time over the range \(t\in F_1(A)\), and consider the total reach of the window \(T_1(t)\) at each point.

因此,讓基準時刻在 \(t\in F_1(A)\) 的範圍內移動, 並考慮每一時刻的視窗 \(T_1(t)\) 整體所能到達的範圍。

$$ \bigcup_{t\in F_1(A)} T_1(t) $$

を計算すると

Computing this gives

計算後可得

$$ \bigcup_{t\in[A_s-b,A_e+a]}[t-a,t+b] = [A_s-(a+b),A_e+(a+b)] $$

となる。

.

これは、 イベント A と同時に成立しうる 別イベントの開催範囲の候補領域と解釈できる。

This can be interpreted as the candidate region for the holding range of another event that can coincide with event A.

這可以解讀為,能與活動 A 同時成立的另一活動,其舉辦範圍的候選區域。

したがって、イベント本体 \([A_s,A_e]\) の外側では

Therefore, outside the event body \([A_s,A_e]\)

因此,在活動本體 \([A_s,A_e]\) 之外

$$ [A_s-(a+b),A_s) \cup (A_e,A_e+(a+b)] $$

が通常窓での候補領域になる。

is the candidate region under the normal window.

是一般視窗下的候選區域。

同様に、拡張窓では

Likewise, for the extended window

同樣地,對於擴展視窗

$$ \bigcup_{t\in F_2(A)}T_2(t) = [A_s-(c+d),A_e+(c+d)] $$

なので、追加で現れる領域は

holds, so the additionally appearing region is

成立,因此新增出現的區域為

$$ [A_s-(c+d),A_s-(a+b)) \cup (A_e+(a+b),A_e+(c+d)] $$

である。

.

後でスケジュール上に網掛けで見るときの 緑・赤の境界はこの区間に対応している。

The green/red boundaries you will see shaded on the schedule later correspond to this interval.

之後在排程上以網底顯示時,綠色與紅色的邊界即對應於這個區間。

2. 2つのイベントを同時に覆う

2. Covering Two Events at Once

2. 同時覆蓋兩個活動

もう1つのイベント期間を

Let another event period be

設另一個活動期間為

$$ B=[B_s,B_e] $$

とする。 同様に、\(T_1\) でイベント \(B\) を覆える基準時刻の集合は

Likewise, the set of reference times at which \(T_1\) can cover event \(B\) is

同樣地,能以 \(T_1\) 覆蓋活動 \(B\) 的基準時刻集合為

$$ F_1(B)=[B_s-b,B_e+a] $$

である。

.

したがって、\(T_1\) により \(A\) と \(B\) を同時に覆える基準時刻の集合は

Therefore, the set of reference times at which \(T_1\) can cover both \(A\) and \(B\) at once is

因此,能以 \(T_1\) 同時覆蓋 \(A\) 與 \(B\) 的基準時刻集合為

$$ F_1(A,B)=F_1(A)\cap F_1(B) $$

すなわち

that is

亦即

$$ F_1(A,B) = [A_s-b,A_e+a]\cap[B_s-b,B_e+a] $$

であり、整理すると

which, simplified, becomes

整理後可得

$$ F_1(A,B) = [\max(A_s,B_s)-b,\ \min(A_e,B_e)+a] $$

となる。

.

同様に、広い窓 \(T_2\) では

Likewise, for the wide window \(T_2\)

同樣地,對於較寬的視窗 \(T_2\)

$$ F_2(A,B) = [A_s-d,A_e+c]\cap[B_s-d,B_e+c] $$

であり、整理すると

which, simplified, becomes

整理後可得

$$ F_2(A,B) = [\max(A_s,B_s)-d,\ \min(A_e,B_e)+c] $$

となる。

.

3. 広い窓でのみ実現できる領域

3. Regions Achievable Only with the Wide Window

3. 僅較寬視窗才能實現的區域

\(T_1\subseteq T_2\) なので

Since \(T_1\subseteq T_2\)

由於 \(T_1\subseteq T_2\)

$$ F_1(A,B)\subseteq F_2(A,B) $$

が成り立つ。 したがって、広い窓でのみ \(A,B\) を同時に覆える基準時刻の集合は

holds. Therefore, the set of reference times that can cover \(A\) and \(B\) at once only with the wide window is expressed as

成立。因此,僅能以較寬視窗同時覆蓋 \(A,B\) 的基準時刻集合,可表示為

$$ F_2(A,B)\setminus F_1(A,B) $$

と表される。

.

これは、狭い窓では届かず、窓を少し広げたときに初めて現れる領域である。 イベント期間を比べていると、このような境界近くの重なりが現れることがある。

This is a region that the narrow window cannot reach, and that appears only once the window is widened slightly. When comparing event periods, overlaps like this near a boundary can show up.

這是一個狹窄視窗無法觸及、只有在視窗稍微擴大後才會出現的區域。 在比較活動期間時,有時會出現這種邊界附近的重疊。

本来は交わらないように見える二つの期間でも、観測する側の境界をほんの少し広げると、細い通路のように同時実現できる時刻が現れる。
先行して始まるものと、まだ終わっていないものが、境界付近でだけ同じ窓に入ることがある。
そういう「見えない交点」を探すのは、少しパズルに似ている。

Even for two periods that appear not to intersect at all, widening the observer's boundary just a little can reveal times where they can be realized simultaneously, like a narrow passage.
Something that starts earlier and something that has not yet ended can, only near the boundary, fall within the same window.
Searching for such "invisible intersections" feels a little like solving a puzzle.

即使是兩個原本看似不會交會的期間,只要將觀測方的邊界稍微擴大, 就會出現彷彿一條細窄通道般、能夠同時實現的時刻。
先開始的活動與尚未結束的活動,有時只會在邊界附近進入同一個視窗。
尋找這種「看不見的交點」,有點像在解謎題。

超極ネコ祭・選抜祭の内容の差分 Festival / Selection Gacha Change Viewer 超極貓祭/選拔祭變化可視化
diff
超極ネコ祭・超選抜祭・極選抜祭について、各開催回の差分を表示します。 緑は追加、赤は削除、青は並び順の変化です。
Shows differences between each festival occurrence. Green = added, red = removed, blue = moved.
顯示各次活動之間的差異。 綠色 = 新增,紅色 = 刪除,藍色 = 順序移動。
多列テーブルとシード消費の一般化モデル Generalized Model of Multi-Column Tables and Seed Consumption 多列轉蛋表與種子消耗的廣義模型

目玉アイテムありのイベントガチャと一般化

Extended Version: Event Gachas with Featured Items and Generalization

擴充版:包含主打道具的活動轉蛋與一般化

これまではAトラック、Bトラックという2列のテーブルを前提としてきたが、イベントガチャなどの特殊な仕様に対応するため、これをC列、D列…と拡張可能な一般化モデルとして再定義する。

Previously, we assumed a two-column table (Track A and Track B). However, to accommodate special mechanics like Event Gachas, we redefine this as a generalized model that can be extended to columns C, D, and beyond.

以往我們都以 A 軌道與 B 軌道這兩列的表格為前提,但為了對應活動轉蛋等特殊機制,我們將其重新定義為可擴充至 C 列、D 列… 的廣義模型。

A, B, C列の正体とシード値のズレ

The True Nature of Columns A, B, C and Seed Offsets

A, B, C 列的真面目與種子值的偏移

ガチャの抽選には、直前のシード値から計算される疑似乱数列 $seed = (s_0, s_1, s_2, \dots)$ が用いられる($s_{i+1} = \mathrm{xorshift32}(s_i)$)。
そもそも「列(トラック)」とは何か。それは「1つのセル(アイテム排出)を構成するために、何個のシード値を消費するか」というズレによって生じる見かけ上の構造である。

Gacha draws use a pseudo-random seed sequence $seed = (s_0, s_1, s_2, \dots)$ calculated from the previous seed ($s_{i+1} = \mathrm{xorshift32}(s_i)$).
What exactly are "columns (tracks)"? They are apparent structures created by the offset of "how many seed values are consumed to constitute one cell (item drop)."

轉蛋抽選使用的是由前一個種子值計算出的偽亂數種子序列 $seed = (s_0, s_1, s_2, \dots)$($s_{i+1} = \mathrm{xorshift32}(s_i)$)。
到底什麼是「列(軌道)」? 它其實是因為「為了構成一個儲存格(產出一個道具),需要消耗多少個種子值」的偏移量所產生的表面結構。

例えば、通常のガチャがレアリティとキャラでシードを"2つ"使うのに対し、目玉アイテムを有するイベントガチャは"3つ"のシードを使用する。するとテーブルは以下のようになる:

For example, while normal gachas use "two" seeds (for rarity and character), event gachas with featured items use "three" seeds. The table thus looks like this:

例如,一般轉蛋在判定稀有度與角色時會消耗「2 個」種子,而包含主打道具的活動轉蛋則會消耗「3 個」種子。如此一來,表格會變成這樣:

  • 1A: $s_0, s_1, s_2$
  • 1B: $s_1, s_2, s_3$
  • 1C: $s_2, s_3, s_4$

これを一般化し、列の数を $C$ (column)、ロール回数を $R$ (rollCount) とすると、テーブル生成(の表示)に必要なシード値の総数は事前に以下のように計算できる。

Generalizing this, if the number of columns is $C$ (column) and the number of rolls is $R$ (rollCount), the total number of seed values required to generate the table can be calculated in advance as follows:

將其一般化,若列數為 $C$ (column),抽卡次數為 $R$ (rollCount),則生成表格所需的種子總數可預先計算如下:

$$ |seed| = C \times R + C - 1 $$

シードインデックスと座標の相互変換

Mutual Conversion Between Seed Index and Coordinates

種子索引與座標的相互轉換

アルファベットによる A, B, C列という表現は数学的処理には向かないため、列インデックスを $t \in \{0, 1, 2, \dots, C-1\}$ と数値化し、セル位置を $(i, t)$ で表す。
あるセル $(i, t)$ が消費し始める先頭のシードインデックスを $j$ (すなわち $s_j$ からスタートする)とする。 $$(i, t) : (s_{j}, s_{j+1}, .., s_{j+C-1})$$ このとき、両者の間には次の相互変換の式が成り立つ。

Since alphabetical representations like A, B, and C are not suitable for mathematical processing, we digitize the column index as $t \in \{0, 1, 2, \dots, C-1\}$ and represent the cell position as $(i, t)$.
If the starting seed index consumed by a cell $(i, t)$ is $j$ (meaning it starts from $s_j$), an extremely elegant mutual conversion formula exists between the two.

由於使用 A, B, C 等字母來表示不利於數學運算,我們將列索引數值化為 $t \in \{0, 1, 2, \dots, C-1\}$,並將儲存格位置記為 $(i, t)$。
假設某個儲存格 $(i, t)$ 開始消耗的首個種子索引為 $j$(即從 $s_j$ 開始),則兩者之間存在非常優美的相互轉換公式。

  • 座標 $(i, t)$ から インデックス $j$ への変換: Conversion from Coordinate $(i, t)$ to Index $j$: 從座標 $(i, t)$ 轉換至索引 $j$: $$ j = C \times (i - 1) + t $$
  • インデックス $j$ から 座標 $(i, t)$ への変換: Conversion from Index $j$ to Coordinate $(i, t)$: 從索引 $j$ 轉換至座標 $(i, t)$: $$ t = j \bmod C $$ $$ i = \lfloor j / C \rfloor + 1 $$

状態遷移の一般公式(シード消費数による移動)

General Formula for State Transition (Movement by Seed Consumption)

狀態轉移的一般公式(基於種子消耗數的移動)

この変換は、「移動が消費シード数 $s$のみに依存する」ことを示している。
すなわち、写像$T_s$を

Using these conversion formulas, we derive the essence that "the movement processing of any gacha is ultimately determined solely by the number of seed values generated (consumed) $s$."
The new destination coordinates $(i', t')$ after consuming $s$ seeds from the current position $(i, t)$ can be completed with the following single equation, requiring no conditional branching.

透過這個轉換公式,我們得出了問題的本質:「任何轉蛋的移動處理,最終都僅由產生(消耗)的種子數量 $s$ 來決定」
從目前位置 $(i, t)$ 出發,消耗 $s$ 個種子後的新目標座標 $(i', t')$,完全不需要進行條件分支,僅用以下單一公式即可完美解決。

$$ T_s(i, t)\,=\,\left(i + \left\lfloor \frac{s + t}{C} \right\rfloor, (s + t) \bmod C\right)$$

と定義すると、任意の移動は$T_s$によって記述される。

イベントガチャ10連への適用例

Application Example: 10-Roll Event Gacha

應用範例:活動轉蛋 10 連抽

この一般式が強力なのは、複雑な仕様を持つガチャの連続ロールにも即座に対応できる点である。例えば、目玉アイテムが排出されるイベントガチャの10連における総消費シード数 $s$ を考えよう。

The power of this general formula is that it can instantly handle continuous rolls in gachas with complex mechanics. For example, let's consider the total consumed seeds $s$ in a 10-roll (or 11-roll) event gacha featuring spotlight items.

這個一般公式的強大之處在於,它能立即應對機制複雜的連續抽卡。例如,我們來思考在包含主打道具的活動轉蛋進行 10 連(或 11 連)時,總消耗種子數 $s$ 該如何計算。

通常キャラの排出にはシードを2個消費するが、事前に決定された枠を使用するため目玉アイテムが排出される場合はシードの消費が0になる。これを定式化すると以下の変数が定義できる。

Normal character drops consume 2 seeds, but when a spotlight item drops, seed consumption is 0 (as it uses a predetermined slot). Formalizing this gives us the following variables:

一般角色產出時會消耗 2 個種子,但若產出主打道具,種子消耗則為 0(因為使用了預先決定的名額)。將其公式化後,我們可以定義以下變數:

  • $mRN$ (Multi-Roll Number) : 連続ロール回数(例: 10)
  • $pR$ (Preprocess Range) : 事前に消費(10連中に確定枠があるかどうか等で 9 または 10)
  • $mN$ (Medama Num) : 実際に排出された目玉アイテムの個数
  • $r$ : ロール中のレア被り(重複)によって追加で消費されたシード数の合計

これらを足し合わせると、イベント10連ガチャ全体でのシード消費数 $s$ は以下のように導出できる。

Adding these together, the total seed consumption $s$ for the entire 10-roll event gacha can be elegantly derived as follows:

將這些加總起來,即可優美地推導出整個活動 10 連抽的總種子消耗數 $s$。

$$ s = pR + 2(mRN - mN) + r $$

この $s$ を先ほどの状態遷移の公式に代入するだけで、どんなに被りが発生しようが、目玉アイテムがいくつ出ようが、最終的な到着セルを$O(1)$で特定できる。 なお、実際にはこの方法で計算しなくても計算量が問題になるほど大きくなることはないが、いかに複雑な仕様でもシード消費数という1つの変数に還元して記述できるというところに数学的モデリングの面白さを感じる。

By simply substituting this $s$ into the general state transition formula above, no matter how many duplicates occur or how many spotlight items drop, the final destination cell can be identified in $O(1)$ time complexity. This is a critically important concept for optimizing the simulator's speed.

只需將這個 $s$ 代入先前的狀態轉移一般公式中,無論發生多少次重複、出現多少個主打道具,都能以時間複雜度 $O(1)$ 一步算出最終抵達的儲存格。這對於模擬器的運算加速來說,是非常核心的概念。

にゃんこ砲素材計算機 Cannon Material Calculator 貓咪砲素材計算機
管理・集計

各にゃんこ砲(主砲・土台・装飾)の現在のレベルを入力すると、最大レベルまでに必要な素材の総数を計算します。
レジェンドステージの周回の目安になるかも?
入力内容は自動的に保存されます。
各素材のドロップ率はwikiなどをご参照ください。

Enter the current levels of your Ototo Cannons (Main, Foundation, and Decoration) to calculate the total materials required to reach maximum level.
Useful for planning your Legend Stage farming!
Your inputs are saved automatically.

輸入各個貓咪砲(主砲、地基、裝飾)的目前等級,即可計算達到最高等級所需的所有素材總數。
可以用來參考傳說關卡的刷素材進度。
輸入內容會自動儲存。

Loading...
ガチャの昇格と境界の可視化 Gacha Promotion and Boundary Visualization 轉蛋昇格與境界可視化

ガチャを引くと、まず特定のシード値に基づいてどのレアリティに当選したかが計算される。
この判定に使われるスコア(0〜9999の範囲)の閾値はガチャの種類によって異なるため、結果として同じシード値から異なるレアリティのキャラクターが排出される可能性がある。 例えば、ガチャAでレアが出るはずのセルがガチャBでは激レアの排出範囲に吸収され激レアとして排出される。このような現象を本サイトでは昇格という。

When you pull a gacha, the rarity is first calculated based on a specific seed value.
Since the score thresholds (ranging from 0 to 9999) used for this determination vary by gacha type, the same seed can result in characters of different rarities. For example, a cell that yields a "Rare" in Gacha A might be absorbed into the "Super Rare" range in Gacha B, resulting in a Super Rare drop. This phenomenon is referred to as "Promotion" on this site.

抽取轉蛋時,系統會先根據特定的種子值計算所中獎的稀有度。
由於判定所使用的分數(範圍 0-9999)閾值因轉蛋種類而異,因此相同的種子值可能會排出不同稀有度的角色。 例如,在轉蛋 A 中本應排出「稀有」的儲存格,在轉蛋 B 中可能被納入「激稀有」的判定範圍而變為激稀有排出。在本網站中,我們將此現象稱為「昇格」。

  • 昇格レベル Promotion Level 昇格等級
    そのガチャにおいて、上位レアリティ(超激レアや伝説レア)に当選するために必要な最低のスコアラインに基づく分類の基準(のようなもの)。
    この数値が小さいほど、より広い範囲の乱数が当たり判定となり、排出されやすくなる。
    A classification standard based on the minimum score line required to hit higher rarities (Uber Rare or Legend Rare) in a given gacha.
    The smaller this value, the wider the winning range for the random numbers, making it easier to pull higher rarities.
    在該轉蛋中,基於獲得高階稀有度(超激稀有或傳說稀有)所需的最低分數線而定的分類基準。
    此數值越小,代表亂數的中獎判定範圍越廣,高稀有度角色越容易排出。

昇格レベル別の境界チャート

Boundary Chart by Promotion Level

各昇格等級的境界圖表

激レアから超激レアへの昇格に注目して、主要なガチャタイプごとのレアリティ境界を可視化した。
横軸は抽選スコア(0〜10000)を表しており、右に行くほど高スコアになる。
橙色の領域が右に圧迫されているガチャほど、昇格レベルが低く、昇格する余地が大きいことを示している。

Focused on the promotion from Super Rare to Uber Rare, we have visualized the rarity boundaries for major gacha types.
The horizontal axis represents the lottery score (0 to 10000), with scores increasing toward the right.
Gachas where the orange region is pushed further to the right indicate a lower Promotion Level and a greater opportunity for promotion.

針對從「激稀有」昇格至「超激稀有」的情況,將主要轉蛋類型的稀有度境界進行了可視化。
橫軸代表抽獎分數(0 至 10000),越往右側分數越高。
橙色區域越向右側壓迫的轉蛋,代表其昇格等級越低,昇格的空間也越大。

図の見方
  • 各分類は該当するガチャの集合からわかりやすい名前をつけています。
  • 左側の「Lv.」は昇格レベルを表します。
  • グラフ上の数値はレアリティが切り替わる境界点を示します。
  • 左側の分類名をクリックすると、同じ境界条件を持つガチャ一覧を確認できます。
  • 「激レア(青)」の領域が、別の行で「超激レア(橙)」に上書きされている範囲が昇格枠になります。
    対象の昇格セルの昇格レベルが低いほど、昇格しやすいことを意味します。
  • 同様に、「超激レア(橙)」が「伝説レア(金)」に変わる範囲も存在します。
  • Each category is given a descriptive name based on the set of applicable gachas.
  • "Lv." on the left represents the Promotion Level.
  • The numbers on the chart indicate the boundary points where rarity changes.
  • Clicking the category name on the left allows you to see the list of gachas with the same boundary conditions.
  • The range where the "Super Rare (Blue)" area is overwritten by "Uber Rare (Orange)" in another row constitutes the promotion frame.
    A lower Promotion Level for the target cell means a higher chance of promotion.
  • Similarly, there is a range where "Uber Rare (Orange)" changes to "Legend Rare (Gold)."
  • 各分類名稱均根據對應轉蛋組合命名,以便理解。
  • 左側的「Lv.」代表昇格等級。
  • 圖表上的數值標示了稀有度切換的邊界點。
  • 點擊左側的分類名稱,可查看具有相同境界條件的轉蛋列表。
  • 「激稀有(藍)」區域被另一行的「超激稀有(橙)」覆蓋的範圍即為昇格框架。
    目標儲存格的昇格等級越低,代表越容易發生昇格。
  • 同樣地,也存在「超激稀有(橙)」變為「傳說稀有(金)」的範圍。
パズルゲーム「すぽっとスポット!」の攻略と分析 Strategy and Analysis: Puzzle Game "Spotspot!" 益智遊戲「Spotspot!」攻略與分析

※これは「にゃんこ大戦争」とは関係ない、趣味の日記です。 *This is a personal hobby diary unrelated to "The Battle Cats". ※這篇是與「貓咪大戰爭」無關的個人趣味日記。

友人に勧められた「すぽっとスポット!」(ゲームクリエイター甲子園2024大賞作品)というパズルゲームがとても面白かったのでご紹介します。

I'd like to introduce a puzzle game called "Spotspot!" (Grand Prix winner of Game Creator Koshien 2024) that a friend recommended. It was incredibly fun!

想跟大家介紹一款朋友推薦的益智遊戲「Spotspot!」(Game Creator 甲子園 2024 大賞作品),真的非常有趣。

すぽっとスポット! Spotspot! Spotspot!

身体をちぎってくっつけて、ゴールにスポッ!とハマるのが気持ちいいパズルアクションゲーム! 移動するだけの簡単操作で、41ステージの大ボリュームが楽しめる!0ω0 A puzzle-action game where tearing and sticking parts of your body to fit perfectly into the goal feels amazing! Simple movement controls with a massive 41 stages to enjoy! 0ω0 這是一款透過撕裂與黏合身體,最後「啪」地一聲精準卡進終點,快感十足的益智動作遊戲!操作簡單只需移動,就能體驗高達 41 關的豐沛內容!0ω0

Steamで無料で遊ぶ Play for free on Steam 在 Steam 上免費遊玩

本作は、一言で言えば「進化した倉庫番」です。キャラクターを上下左右に動かして、ゴールを目指します。 しかし、そこにある「結合」のルールが非常にユニークで面白いです。

In short, this game is an "evolved Sokoban". You move your character in four directions to reach the goal. However, the "joining" mechanics are incredibly unique and engaging.

這款遊戲簡單來說就是「進化版的倉庫番」。玩家透過上下左右移動角色來抵達終點。 但其中關於「結合」的規則非常獨特且有趣。

  • 連動する操作キャラ: 操作キャラクターが複数いる場合、すべて同時に同じ方向へ動きます。
  • Linked Characters: When there are multiple characters, they all move in the same direction simultaneously.
  • 連動的操作角色: 當場上有多個角色時,所有角色會同時往相同方向移動。
  • 結合のルール: 隣り合ったブロック同士はペタペタと結合し、一つの塊として動くようになります。
  • Joining Rule: Adjacent blocks stick together and begin to move as a single mass.
  • 結合規則: 相鄰的方塊會互相黏合,並開始作為一個整體移動。
  • 壁で「ちぎる」: 結合した塊を壁に引っ掛けるように動かすことで、結合を無理やり解除できます。
  • "Tearing" with Walls: You can forcibly break connections by hooking parts of a joined mass against a wall.
  • 利用牆壁「撕裂」: 將結合的整體勾在牆壁上移動,就可以強制解除結合。

▲ こんなふうに、移動でくっつけたり、壁を使ってちぎりながらゴールを目指します。

▲ As shown, you reach the goal by sticking blocks together through movement or tearing them apart using walls.

▲ 就像這樣,透過移動來黏合、利用牆壁來撕裂,以此往終點邁進。

この「壁を使ってブロックをちぎる」という操作がパズルとして秀逸です。移動の制限がある中で、いかに効率よく形を整え、全てのゴールを対応するブロックで埋めるか……。

The mechanic of "tearing blocks using walls" is brilliant. Within the movement constraints, you must figure out how to efficiently reshape the mass to fill all goals with the corresponding blocks...

這種「利用牆壁撕裂方塊」的操作作為益智遊戲非常出色。在移動受限的情況下,如何有效率地調整形狀,並用對應的方塊填滿所有終點……。

パズル自体が面白いのもそうですが、キャラがかわいいのと音楽やグラフィックもきれいで楽しい感じで、ついつい時間を忘れて熱中してしまいました。

Not only is the puzzle-solving itself fun, but the cute characters, beautiful music, and graphics create such an enjoyable atmosphere that I completely lost track of time.

除了謎題本身有趣之外,角色非常可愛,音樂和畫面也都很精緻,整體的氛圍令人心情愉悅,讓我不知不覺就玩到忘了時間。

こういう倉庫番系のパズルゲームが好きな方なら、間違いなくハマる一作だと思います。ぜひプレイしてみてくださいね。

If you enjoy Sokoban-style puzzle games, you will definitely get hooked on this one. Please give it a try!

如果你喜歡這種「倉庫番」類型的益智遊戲,這款作品絕對會讓你著迷。請務必親自體驗看看!

どうしても解けなかったので…

Since I couldn't solve it...

因為怎麼也解不開……

難易度は適度なのですが、最後の問題がどうしても解けず、、

The difficulty is generally well-balanced, but I just couldn't solve the very last puzzle...

難易度雖然適中,但最後一關我無論如何都解不開……

悔しかったので、「人間が無理ならパソコンに解かせればいいじゃない」ということで、Pythonでソルバー(探索プログラム)を自作して攻略しました(攻略というよりもチートに近いかも;)。

Frustrated, I thought, "If a human can't do it, why not let a computer solve it?" So I built a custom solver (search program) in Python to beat it (though it's closer to cheating than a walkthrough;).

覺得很不甘心,心想「人類解不開的話,叫電腦解不就好了嗎」,於是就用 Python 自製了一個求解器(探索程式)來攻略(與其說是攻略,可能更接近作弊就是了;)。

アルゴリズムは、当サイトの最適経路探索でも使っているA*探索を採用しました。 このゲーム特有の「ブロックが結合して同時に動く」という挙動を、正しくadmissibleなヒューリスティック関数に落とし込むのが少し難しく、良い頭の体操になりました。

For the algorithm, I used A* Search, which I also use for optimal pathfinding on this site. Translating the game-specific behavior of "connected blocks moving simultaneously" into a proper admissible heuristic function was quite a challenge and a great mental exercise.

演算法採用了本站最佳路徑探索也在使用的 A* 搜尋。 要把這款遊戲特有的「方塊結合並同時移動」的行為,正確轉化為具備可容許性(admissible)的啟發式函數(heuristic function)有點難度,是個很好的腦力激盪。

探索結果

Search Results

探索結果

以下はプログラムが導き出した最善手(最短手数)の解です。自力で解きたい方は開かないでください。

Below are the optimal solutions (minimum moves) found by the program. Please do not expand this if you want to solve it yourself.

以下是程式導出的最佳解(最短步數)。想要靠自己解開的人請不要打開。

【ネタバレ】解析された最短ルートを見る [Spoiler] View the analyzed shortest routes 【雷】查看解析出的最短路徑
ステージ Stage 關卡 最短手数 Min Moves 最短步數 最短経路(例) Shortest Path (Example) 最短路徑(例)

アルゴリズムの性能比較と難易度推定

Algorithm Performance Comparison and Difficulty Estimation

演算法性能比較與難易度推定

せっかくデータが取れたので、単純な幅優先探索(BFS)と、ヒューリスティックを用いたA*探索の性能差や、AIにとってのステージの難易度を分析してみました。

Since I gathered the data, I analyzed the performance difference between a simple Breadth-First Search (BFS) and an A* search using heuristics, as well as the stage difficulty from an AI's perspective.

既然都取得了數據,我順便分析了單純的「廣度優先搜尋(BFS)」與使用啟發式的「A* 搜尋」之間的性能差異,以及從 AI 角度看來的關卡難易度。

詳細な分析データを見る View detailed analysis data 查看詳細分析數據

1. 分析結果

1. Analysis Results

1. 分析結果

探索の効率を示すメトリクスとして以下で定義するEBF(Effective Branching Factor)と分岐係数(expansion_ratio)を考えています。

I considered EBF (Effective Branching Factor) and the expansion ratio as metrics to indicate search efficiency.

我考慮將以下定義的 EBF (Effective Branching Factor) 與分枝係數 (expansion_ratio) 作為衡量探索效率的指標。

分岐を$b$, 探索木の深さ(最短手数)を$d$, 展開するノード数を$N$とします。
分岐係数は、$N/d$として求める値です。1手あたりのノード数、つまり一歩進むために何回の試行錯誤が必要だったかを表します。

Let $b$ be the branching factor, $d$ be the depth of the search tree (minimum moves), and $N$ be the number of expanded nodes.
The expansion ratio is calculated as $N/d$. It represents the number of nodes per move—essentially, how much trial and error was required to take a single step forward.

假設分枝為 $b$,探索樹的深度(最短步數)為 $d$,展開的節點數為 $N$。
分枝係數(展開率)是以 $N/d$ 求得的數值。它代表每一手所產生的節點數,也就是為了前進一步需要經過多少次試錯。

EBFは、探索の計算量がざっくり$b^d=N$とおけることから、$b=N^{1/d}$として求める値です。有望な手を見つけるのにどれだけの分岐が必要だったかを示します。1に近いほど迷わずに最適経路を求められたことを示します。

EBF is derived as $b=N^{1/d}$ based on the rough complexity of $b^d=N$. It indicates how much branching was required to find promising moves. A value closer to 1 means the optimal path was found with less deviation.

EBF 是基於計算量大致可設為 $b^d=N$ ,從而由 $b=N^{1/d}$ 求得的數值。它表示為了找到有希望的步法需要多少分枝。數值越接近 1,表示越能毫不猶豫地找到最佳路徑。

※ ヘッダーをクリックすると動的にソートします。 *Click the header to sort dynamically. ※ 點擊標題列可進行動態排序。

2. A*とBFSの性能比較

2. Performance Comparison: A* vs. BFS

2. A* 與 BFS 的性能比較

以下のグラフは、各アルゴリズムが解を見つけるまでに展開したノード数(局面数)や探索時間の比較です(対角線よりも下の点が多いほどA*探索が高速であると読めます)。 A*探索を用いることで、探索空間を劇的に削減できていることがわかります。

The graph below compares the number of expanded nodes (states) and the search time for each algorithm (points below the diagonal line indicate that the A* search is faster). It's clear that the A* search dramatically reduces the search space.

下圖是各演算法在找到解之前所展開的節點數(局面數)與探索時間的比較(若點多分佈於對角線下方,則表示 A* 搜尋速度較快)。 可以看到透過 A* 搜尋,探索空間得到了劇烈的削減。

▲ 実行時間(左)と探索ノード数(右)によるA*探索とBFSの比較。ブロック数や手数が多いほど探索が大変だということもわかります。 ▲ Comparison of A* and BFS by execution time (left) and number of explored nodes (right). It's evident that more blocks or moves lead to higher search complexity. ▲ 執行時間(左)與探索節點數(右)的 A* 與 BFS 比較。可以看到方塊數或步數越多,探索難度就越高。

3. プログラムが苦戦した「真の難関」ステージ

3. The "True Challenges" that Stunned the Program

3. 讓程式也陷入苦戰的「真.難關」關卡

手数が多いから難しいとは限りません。AIにとっての難易度を分岐係数で定義し、ランキング化しました。 この数値が高いほど、ヒューリスティック関数を欺く迷いやすい配置になっているといえます。 (人間がプレイしても難しいと思う基準と概ね対応しているようです)

A high move count doesn't necessarily mean a stage is difficult. I defined the difficulty for the AI using the expansion ratio and ranked the stages. A higher value suggests a layout that is more likely to deceive the heuristic function and cause "confusion." (This seems to correlate well with what humans find difficult.)

步數多並不一定代表困難。我將 AI 眼中的難易度定義為「分枝係數」並進行了排行。 這個數值越高,代表該配置越容易誤導啟發式函數,使其陷入迷惘。 (這與人類玩家覺得困難的基準大致吻合)

順位 Rank 排名 ステージ Stage 關卡 分岐係数 Exp. Ratio 分枝係數 展開ノード数 Nodes Expanded 展開節點數 最短手数 Min Moves 最短步數
1 Ex-5 23,450 680,053 29
2 Ex-3 8,609 180,794 21
3 5-8 2,689 56,481 21

※ ステージEx-5は、たった29手進むために約68万通りの局面を検討しており、AIにとっていかに罠が多い配置だったかがわかります。 *Stage Ex-5 required examining about 680,000 states to progress just 29 moves, showing how many traps the layout held for the AI. ※ Ex-5 關卡僅僅為了前進 29 步就檢討了約 68 萬種局面,可見其配置對 AI 來說陷阱重重。

おわりに

Closing Thoughts

結語

こういうシンプルなルールゆえに奥が深いパズルゲームは、アルゴリズムの研究対象として非常に面白いですね。

Puzzle games with simple rules yet profound depth are fascinating subjects for algorithmic research.

正因為規則簡單才顯得深奧的益智遊戲,作為演算法的研究對象非常有意思。

今回は解くだけでしたが、デッドロック(手詰まり)に陥るパターンの解析や、逆にソルバーを使って「AIでも解くのが難しい問題」を自動生成する試みなども面白そうです。 時間があったらまた研究して追記したいですね。

This time I focused only on solving, but analyzing deadlock patterns or using the solver to automatically generate "problems that are difficult even for an AI to solve" could be very interesting. I'd love to research this further and add more updates when I have time.

這次雖然只做了求解,但分析陷入「死結(Deadlock,無解狀態)」的模式,或是反過來利用求解器自動生成「連 AI 都覺得難解的問題」等嘗試似乎也很有趣。 等有時間我想再深入研究並補充上來。

皆さんはぜひ、自力で挑戦してみてください。

I highly encourage you all to try and solve it on your own!

請各位務必親自挑戰看看。

ガチャ分類・重複確率計算ツール Gacha Classification & Duplicate Probability Calculator 轉蛋分類與重複機率計算工具

トラック移動の原理と戦略 Principles and Strategies of Track Movement 軌道移動的原理與策略

リロールによるトラック移動の原理と戦略的な利用

Principles and Strategic Use of Track Switching via Rerolls

重複處理導致的換軌原理與戰略運用

リロールが起こる仕組み

How Rerolls Work

重複處理(Reroll)的機制

ガチャを単発で引き、同じ重複処理グループに属するキャラクターが連続して排出される状況になったときに「トラック移動」が発生する。 つまり、直前の排出結果と、次の抽選で候補に上がったキャラが同一である場合、その結果は無効になり、新しい乱数を使って再抽選が行われる。

"Track Switching" occurs when you perform single pulls and draw characters belonging to the same duplicate processing group consecutively. In other words, if the result of the next draw is identical to the previous one, that result is invalidated, and a reroll is performed using a new random number.

當進行單次抽卡時,如果連續抽出屬於同一個「重複處理群組」的角色,就會發生「換軌」。 簡單來說,當次抽選出的角色與前一次完全相同時,該結果會被視為無效,並使用新的亂數進行重新抽選。

このとき内部的には、新しく1つ以上の乱数が生成される。ガチャテーブルは「抽選に使われた乱数の個数」で見かけ上のA/Bトラックを構成しているため、再抽選によって乱数が余分に使われると、結果として別のトラックに移動することがある。これが、よく言われるところの重複処理やトラック移動、「レア被り」の基本的なメカニズムである。

At this point, one or more new random numbers are generated internally. Since the gacha table constructs the apparent A/B tracks based on the "number of random numbers consumed for draws," the use of an extra random number due to a reroll can result in a move to the other track. This is the basic mechanism of what is commonly referred to as duplicate processing, track switching, or "Rare duplicates."

此時在系統內部會產生一個或多個新的亂數。由於轉蛋表格是根據「消耗的亂數個數」來構成表面的 A/B 軌道,因此若因重新抽選而多消耗了亂數,結果就會跳轉到另一個軌道。這就是常說的「重複處理」、「換軌」或「稀有重複(Rare被り)」的基本機制。

ターゲッティング時の重複処理の良し悪し

Pros and Cons of Duplicate Processing in Targeting

瞄準特定角色時重複處理的優劣

リロールそのものは、内部仕様として自然に発生する処理であり、引きや運の良し悪しとは直接関係しない。 ほとんどの場合、気にする必要はないどころか、むしろ目標位置までの必要ロール数が減るため有利に働くことさえある。 ただし、次のような状況ではリロールが不都合と感じられることがある:

A reroll itself is a natural process within the internal specifications and is not directly related to good or bad luck. In most cases, there is no need to worry; it can even be advantageous as it reduces the number of rolls required to reach a target position. However, rerolls can be perceived as inconvenient in the following situations:

「重複處理(Reroll)」本身是系統內部規格下自然產生的處理方式,與運氣好壞沒有直接關係。在大多數情況下,玩家甚至不需要在意,由於這會減少抵達目標位置所需的抽數,有時反而更有利。但在以下情況中,重複處理可能會讓人感到不便:

  • 欲しいキャラが別トラックにいるのに、別トラックに移動する手段がない場合
  • When the desired character is on the other track, but you have no means to switch tracks.
  • 想要的角色在另一個軌道,卻沒有手段可以換軌時。
  • 欲しいキャラが今いるトラックのすぐ先にいるのに、直前で重複が発生し別トラックに飛ばされる場合
  • When the desired character is just ahead on your current track, but a duplicate occurs right before, pushing you to the other track.
  • 想要的角色就在目前軌道的前方不遠處,卻因為前一格發生重複而被踢到另一個軌道時。

これらの状況は、リロールによるトラック移動が結果的にプレイヤーにとって不利に働く典型的なパターンである。 この事態をできるだけ回避するために、戦略的なトラック操作の方法が考えられている。

These situations represent typical patterns where track switching due to a reroll results in a disadvantage for the player. To avoid such occurrences as much as possible, strategic methods for track manipulation have been developed.

這些情況是重複處理換軌後,結果對玩家不利的典型案例。為了盡可能避免這種事態,玩家們研發出了戰略性的軌道操作方法。

トラック移動を避ける/意図的に起こす方法

How to Avoid or Intentionally Trigger Track Switching

避免或刻意觸發換軌的方法

リロールの有無を決めるのは、ガチャごとに設定されている「重複処理の扱い」である。 プレイヤーが操作できるのは、どのガチャを引くか、という選択だけである。 したがって、トラック移動をコントロールするには、漠然にでも各ガチャが重複処理の扱いについてどの分類に属するのかを把握しておくことが重要になる。

Whether a reroll occurs is determined by the "duplicate processing rules" set for each gacha event. The only thing a player can control is the choice of which gacha to pull. Therefore, to control track switching, it is important to have at least a general understanding of which classification each gacha belongs to regarding its duplicate processing.

決定是否觸發重複處理的,是每個轉蛋活動設定好的「重複處理規則」。玩家唯一能做的操作就是選擇「抽哪一個轉蛋」。因此,為了控制換軌,大致掌握各個轉蛋在重複處理規則上屬於哪種分類是非常重要的。

この分類は次の 3 つの要素が完全に一致しているかどうかで決まる:

This classification is determined by whether the following three elements match perfectly:

轉蛋的分類取決於以下三個要素是否完全一致:

  1. 重複処理に使われるレアリティグループが一致しているか
  2. Matching Rarity Groups used for duplicate processing.
  3. 用於重複處理的稀有度群組是否一致。
  4. レアリティごとの抽選確率Draw Probabilities per Rarity各稀有度的抽選機率
    69.7%と70%のように、割合が少しでも異なればトラック操作の可能性が生まれ、別の分類になる。 If the percentages differ even slightly, such as 69.7% vs. 70%, it creates the possibility for track manipulation and places them in different classifications. 即使比例僅有些微差異(例如 69.7% 與 70%),也會產生軌道操作的可能性,並被歸類為不同的分類。
  5. アイテムリストの「厳密な一致」(キャラ集合・数・順序)
  6. "Strict Matching" of the item list (Set of characters, total count, and order).
  7. 角色清單的「嚴密一致」(包含的角色集合、數量、排列順序)。

トラック移動を回避したい場合、発動させたい場合のいずれも、ロールの間に分類が異なるガチャを挟めることになる。

Whether you want to avoid or trigger track switching, you would insert a gacha from a different classification between your rolls.

不論是想要避免換軌還是誘發換軌,關鍵都在於抽卡過程中穿插分類不同的轉蛋。

トラック移動を回避したい場合

To Avoid Track Switching

想要避免換軌時

分類が異なるガチャとして最もよく使われるのがプラチナチケットやレジェンドチケットのガチャで、これらはそもそも重複処理の対象となる「レア」のグループを持たないため、 重複処理が発生せずに安全に現在のトラックを維持できる。 稀なケースだが、超ネコ祭などの超激レアの確率がブーストされ、「レア」の確率が圧迫されているタイプのガチャも、分類が異なるのでトラック移動を回避したり、 (ごく低確率で)発動させたりすることができる。

The most commonly used gachas with different classifications are Platinum and Legend Ticket gachas. These do not have a "Rare" group subject to duplicate processing, allowing you to safely maintain your current track without triggering a reroll. In rare cases, gachas like Uberfest, where the Uber Rare drop rate is boosted and the "Rare" rate is reduced, also fall into a different classification, allowing you to avoid or (at a very low probability) trigger a track switch.

最常用來作為不同分類的轉蛋是「白金券」或「傳說券」,因為這些轉蛋本身不包含會觸發重複處理的「稀有」群組,因此不會發生重複處理,能安全地維持目前的軌道。在少數情況下,像是「超級貓咪祭」等超激稀有機率增加、導致「稀有」機率被壓縮的轉蛋也屬於不同分類,因此可以用來避免或(在極低機率下)觸發換軌。

意図的にトラック移動を起こしたい場合

To Intentionally Trigger Track Switching

想要刻意誘發換軌時

こちらも分類が異なるガチャを交代して引くことで、抽選処理が異なるルートに入り、結果としてトラックが切り替わる可能性が生まれる。 現実的によく利用されるのは次のタイプである:

By alternating with a gacha of a different classification, the draw process enters a different route, creating the possibility of switching tracks. The types commonly used in practice are:

透過交替抽選不同分類的轉蛋,抽選處理會進入不同的路徑,從而產生換軌的可能性。實務上常用的類型如下:

  • コラボガチャ(レアリティ構成やリストが大きく異なる)Collaboration Gachas (significant differences in rarity composition and character lists)合作轉蛋(稀有度構成或角色清單有顯著差異)
  • 常設の一部(例:波動 バスターズ のように並び順が違うもの)Specific Permanent Gachas (e.g., Wave Busters, where the internal character order differs)部分常駐轉蛋(例如:波動破壞者,其內部順序不同者)

こうしたガチャを挟むことで、レアリティ抽選やアイテム抽選の結果が変化し、トラックの移動を発生させることができる。

By inserting these types of gachas, the results of rarity and item draws change, enabling you to trigger a track switch.

透過穿插這類轉蛋,稀有度抽選或道具抽選的結果會發生變化,進而誘發軌道切換。

ガチャ分類を把握することの重要性

Importance of Understanding Gacha Classification

掌握轉蛋分類的重要性

トラック操作を戦略的に使うためには、この「重複処理の観点によるガチャ分類」を理解しておくのが望ましい。 しかし現状では、コミュニティでこの分類の結果が体系的に共有されることはなく、もっぱら上級者の間で暗黙知のように扱われている。

To use track manipulation strategically, it is desirable to understand this "gacha classification from the perspective of duplicate processing." However, at present, the results of these classifications are not systematically shared within the community and are mostly treated as tacit knowledge among advanced players.

為了戰略性地運用軌道操作,建議理解這種「基於重複處理觀點的轉蛋分類」。然而目前在社群中,這類分類結果並未被系統性地分享,大多僅作為資深玩家之間的默契或隱性知識存在。

本ツールでは分類表を自動生成する仕組みを備えており、各ガチャがどの分類に属するか、どのガチャ同士でトラック操作が可能かを具体的に確認できる。 新しいガチャが登場する際の事前検討にも役立つため、頭の片隅にでも分類基準を把握しておくことは十分に意味があると考える。

This tool provides a mechanism to automatically generate a classification table, allowing you to specifically check which category each gacha belongs to and which gachas can be used for track manipulation. Since this is useful for preliminary planning when new gachas appear, we believe it is highly worthwhile to keep these classification criteria in mind.

本工具具備自動生成分類表的功能,可以具體確認各個轉蛋屬於哪種分類,以及哪些轉蛋之間可以進行軌道操作。由於這對新轉蛋登場時的預先評估非常有幫助,因此我們認為將這些分類基準記在腦海中是非常有意義的。

ロール重複の確率モデル構築 Mathematical Model for Roll Duplicate Probabilities 角色重複的機率模型建構

ロール重複の制御と確率モデル

Control and Probability Model of Roll Duplicates

角色重複的控制與機率模型

本項では、「同じ乱数シードを共有する 2 種類のガチャ $X$, $Y$」を対象に、2 ロール分の結果から 重複を回避できる確率意図的に重複(ペア)を発動できる確率、 およびそれらを統合した トラック操作確率 を確率モデルとして定式化する。

In this section, we formulate a probability model targeting "two types of gachas, $X$ and $Y$, sharing the same random seed." Based on the results of two rolls, we define the Avoidance Probability, Activation Probability (intentionally triggering a duplicate pair), and the integrated Track Controllability.

本節針對「共享相同亂數種子的兩種轉蛋 $X$ 與 $Y$」,根據兩次抽選(Roll)的結果,將 重複迴避機率重複觸發機率(刻意製造重複配對)以及整合後的 軌道操作機率 進行機率模型的公式化。

次のような基本構造を考える:

Consider the following basic structure:

考慮以下基本結構:

  • ガチャは$X, Y$の 2 種類。
  • There are two types of gachas, $X$ and $Y$.
  • 轉蛋共有 $X, Y$ 兩種。
  • 各ガチャは重複処理の対象となる「レア/Rare」(「レア1」と呼ぶ)と、それ以外のレアリティ(まとめて「レア2」扱い)を持つ。
  • Each gacha has a "Rare" category (referred to as "Rare 1") subject to duplicate processing, and other rarities (collectively treated as "Rare 2").
  • 每種轉蛋都有屬於重複處理對象的「稀有/Rare」(稱為「稀有 1」),以及其他稀有度(統稱為「稀有 2」)。
  • 1回のロールでは、まずレアリティを乱数$a$で決定し、次に、選ばれたレアリティのアイテムリストから乱数$b$でアイテムが選ばれる。
  • In a single roll, the rarity is first determined by random number $a$, and then an item is selected from the chosen rarity's item list using random number $b$.
  • 在單次抽選中,首先由亂數 $a$ 決定稀有度,接著再由亂數 $b$ 從該稀有度的道具清單中選出角色。
  • $X, Y$は同一ロール内で同じ乱数ペア$(a, b)$を共有する(したがって同一ロール内では従属)。
  • $X$ and $Y$ share the same random number pair $(a, b)$ within the same roll (making them dependent within that roll).
  • $X$ 與 $Y$ 在同一次抽選中共享相同的亂數對 $(a, b)$(因此在同一次抽選中兩者是相依的)。
  • 2回のロール$r=1,2$では、それぞれ独立な乱数ペア$(a_r, b_r)$を用いる。
  • Independent random number pairs $(a_r, b_r)$ are used for two separate rolls $r=1, 2$.
  • 在兩次抽選 $r=1, 2$ 中,分別使用互相獨立的亂數對 $(a_r, b_r)$。

また、プレイヤーは 2 ロール分の結果$$(X_1, X_2),\quad (Y_1, Y_2)$$を参照し、 $$X\to X,\quad X\to Y,\quad Y\to X,\quad Y\to Y$$ のいずれかのロール順(実際に画面に提示する 2 連分のロール)を戦略的に選択できるとする。

Furthermore, the player can reference the outcomes of the two rolls $$(X_1, X_2),\quad (Y_1, Y_2)$$ and strategically choose one of the following roll sequences: $$X\to X,\quad X\to Y,\quad Y\to X,\quad Y\to Y$$ (the actual sequence of two rolls performed in the game).

此外,假設玩家參考兩次抽選的結果 $$(X_1, X_2),\quad (Y_1, Y_2)$$,並能戰略性地選擇 $$X\to X,\quad X\to Y,\quad Y\to X,\quad Y\to Y$$ 其中一種抽選順序(實際上在畫面中呈現的連續兩次抽選)。

ここでの目標は、次の 3 つの量を数学的に定義し、定式化することである:

The goal here is to mathematically define and formulate the following three quantities:

這裡的目標是將以下三個量進行數學定義與公式化:

  • 回避確率:
    「$X,Y$のどちらかで重複が起こったとき、 ロール順を工夫することで重複を回避できる確率」
    Avoidance Probability:
    "The probability that when a duplicate occurs in either $X$ or $Y$, it can be avoided by strategically choosing the roll sequence."
    迴避機率:
    「當 $X, Y$ 其中之一發生重複時,透過調整抽選順序來迴避重複的機率。」
  • 発動確率:
    「$X,Y$のどちらかで重複が起こっていないとき、 ロール順を工夫することで重複を作ることができる確率」
    Activation Probability:
    "The probability that when a duplicate has not occurred in either $X$ or $Y$, it can be triggered by strategically choosing the roll sequence."
    觸發機率:
    「當 $X, Y$ 皆未發生重複時,透過調整抽選順序來製造出重複的機率。」

及びこれらを統合したトラック操作可能性として、選択の自由度を表す指標を考える。

Additionally, we consider an index representing the degree of freedom in choice, defined as the integrated "Track Controllability."

以及將上述兩者整合為「軌道操作可能性」,作為衡量選擇自由度的指標。

近似①:乱数モデルと連続近似の正当性

Approximation I: Validity of the Random Number Model and Continuous Approximation

近似 ①:亂數模型與連續近似的正當性

実際のゲーム内では、乱数生成器としてxorshift32が採用されている。 これは決定論的なアルゴリズムであり、厳密には$a$と $b$は独立ではない。 しかし、xorshift32 は出力ビットの混ざりが非常に良く、低位ビットも均等に分布し、大域周期が長いという性質を持つ。 そのため、実装上の $b$ は「ほぼ完全な一様乱数」であり、統計的には $a$ と $b$ は独立とみなしても問題はない。 そこで、本モデルでは計算を簡略化するため、$a, b$ は独立であると仮定する。

In the actual game, xorshift32 is employed as the Pseudo-Random Number Generator (PRNG). As a deterministic algorithm, $a$ and $b$ are not strictly independent. However, xorshift32 features excellent bit-mixing, uniform distribution of lower bits, and a long period. Consequently, $b$ in practice behaves as a "near-perfect uniform random number," and statistically, assuming independence between $a$ and $b$ is acceptable. Therefore, this model assumes $a$ and $b$ are independent to simplify calculations.

在實際遊戲中,採用了 xorshift32 作為隨機數產生器。這是一種決定性演算法,嚴格來說 $a$ 與 $b$ 並非獨立。但由於 xorshift32 的輸出位元混合極佳、低位元分佈均勻且具有長週期特性,因此實作上的 $b$ 屬於「幾乎完全均勻的隨機數」,在統計上將 $a$ 與 $b$ 視為獨立並無大礙。為了簡化計算,本模型假設 $a, b$ 相互獨立。

また、キャラクター抽選は通常 $b \mod n$ で行われるが、 本項ではこれを連続一様乱数 $U_b \sim \mathrm{Unif}[0,1)$ を用いた区間分割モデルとして再解釈する。 $b$ の取りうる値の範囲($0\leq b < 2^{32}$)は $n$ に対して十分に大きいため、 $$b \mod n=k \iff U_b \in \left[\frac{k}{n},\frac{k+1}{n}\right)$$ という対応関係がほぼ完全に成立する。 この連続近似モデルを採用することで、リストの順序が異なるガチャ同士の重複判定を、区間の重なりとして厳密かつ統一的に計算することが可能になる。

Furthermore, character selection is typically performed via $b \mod n$. In this section, we re-interpret this using a continuous interval model with a uniform random number $U_b \sim \mathrm{Unif}[0,1)$. Since the range of $b$ ($0\leq b < 2^{32}$) is sufficiently large relative to $n$, the mapping $$b \mod n=k \iff U_b \in \left[\frac{k}{n},\frac{k+1}{n}\right)$$ holds almost perfectly. By adopting this continuous approximation model, duplicate checks between gachas with different list orders can be calculated rigorously and uniformly as interval overlaps.

此外,角色抽選通常透過 $b \mod n$ 進行,但在本節中,我們將其重新詮釋為使用連續均勻隨機數 $U_b \sim \mathrm{Unif}[0,1)$ 的區間分割模型。由於 $b$ 的取值範圍($0\leq b < 2^{32}$)相對於 $n$ 非常大,因此對應關係 $$b \mod n=k \iff U_b \in \left[\frac{k}{n},\frac{k+1}{n}\right)$$ 幾乎完全成立。透過採用此連續近似模型,能將清單順序不同的轉蛋間之重複判定,轉化為區間重疊進行嚴密且統一的計算。

近似②:重複リロールにおける追加乱数とトラック移動の限界

Approximation II: Additional Random Numbers in Rerolls and Limits of Track Switching

近似 ②:重複重新抽選中的追加亂數與換軌限制

本モデルでは、レア1の重複が発生した場合に「トラックが必ず切り替わる(A↔B)」という仮定を置いている。 しかし実際の実装では、重複発生時に生成される乱数の個数は常に1とは限らず、 レア1アイテムリスト内に同一IDが複数個含まれる場合には、再抽選が連鎖し 2 個以上の乱数が生成される場合がある。
また、重複リロール時のトラック遷移は、追加乱数の個数を $p$ として $$\text{pos}_{\mathrm{new}} = H^{p}(\text{pos}_{\mathrm{init}})$$ で処理される($H$は「A→B」「B→A」のトラック切り替え操作。詳しくはセクション「リロール時のセルの移動先について」も参照)。 したがって、

This model assumes that a "track switch (A↔B) always occurs" when a Rare 1 duplicate occurs. However, in the actual implementation, the number of random numbers generated upon a duplicate is not always one. If the Rare 1 item list contains multiple entries of the same ID, rerolls can chain, resulting in the generation of two or more random numbers.
Furthermore, track transition during a duplicate reroll is processed as $$\text{pos}_{\mathrm{new}} = H^{p}(\text{pos}_{\mathrm{init}})$$ where $p$ is the number of additional random numbers ($H$ represents the A→B / B→A track switch operation; for details, see the section "On Cell Destinations During Rerolls"). Consequently,

本模型假設當「稀有 1」發生重複時,「軌道必然切換(A↔B)」。但在實際實作中,發生重複時產生的亂數個數並不一定為 1。若「稀有 1」道具清單中包含多個相同 ID,則會引發連鎖重新抽選,進而產生 2 個以上的亂數。
此外,重複重新抽選時的軌道遷移處理方式為 $$\text{pos}_{\mathrm{new}} = H^{p}(\text{pos}_{\mathrm{init}})$$ 其中 $p$ 為追加亂數的個數($H$ 為「A→B」或「B→A」的軌道切換操作;詳情請參閱「關於重新抽選時的儲存格移動目標」章節)。因此,

  • $p$ が奇数ならばトラックが切り替わる
  • If $p$ is odd, the track switches.
  • 若 $p$ 為奇數,軌道會切換。
  • $p$ が偶数ならトラックが切り替わらない(=トラック移動は発生しない)
  • If $p$ is even, the track does not switch (no track movement occurs).
  • 若 $p$ 為偶數,軌道不會切換(亦即不發生換軌)。
という現象が起こる。 This is the phenomenon that occurs. 會發生上述現象。

このため、現実の動作では「重複したのにトラックが動かず、操作の自由度が下がる」ケースが一定の確率で発生する。 この点について、本項の確率モデルは “重複時には常にトラックが切り替わる”という仮定を置いて簡略化している。

Because of this, cases where a "duplicate occurs but the track does not move, reducing the degree of control" happen with a certain probability in actual play. Regarding this, the probability model in this section is simplified by assuming that "a track switch always occurs upon a duplicate."

因此在現實運作中,存在一定機率會發生「雖然重複但軌道沒動,導致操作自由度下降」的情況。針對此點,本節的機率模型簡化為假設「發生重複時軌道必然切換」。

この近似はわずかに過大評価となるが、誤差は極めて小さい。 実際に、長さ$n$のレア1のアイテムリストについて、抽選された重複アイテムが$d$個含まれている場合、$p$の分布は $$P(p=k) \approx \prod_{j=1}^{k-1}\frac{d-(j-1)}{n-(j-1)}\cdot\left(1-\frac{d-(k-1)}{n-(k-1)}\right), \quad 1\leq p \leq d$$ と表せるが、最も重複が多い『エヴァ』のケース($n=37$, 重複ID数 $d=3$ の場合)でも、追加乱数 $p$の分布は概ね

This approximation slightly overestimates the probability, but the error is extremely small. For a Rare 1 item list of length $n$ containing $d$ instances of the drawn duplicate item, the distribution of $p$ can be expressed as: $$P(p=k) \approx \prod_{j=1}^{k-1}\frac{d-(j-1)}{n-(j-1)}\cdot\left(1-\frac{d-(k-1)}{n-(k-1)}\right), \quad 1\leq p \leq d$$ Even in the "Evangelion" collab case ($n=37, d=3$), which has the highest density of duplicates, the distribution of additional random numbers $p$ is roughly:

雖然此近似會略微高估,但誤差極小。實際上,對於長度為 $n$ 且包含 $d$ 個重複抽選道具的「稀有 1」道具清單,$p$ 的分佈可表示為: $$P(p=k) \approx \prod_{j=1}^{k-1}\frac{d-(j-1)}{n-(j-1)}\cdot\left(1-\frac{d-(k-1)}{n-(k-1)}\right), \quad 1\leq p \leq d$$ 即使在重複情況最嚴重的「福音戰士」合作活動($n=37$, 重複 ID 數 $d=3$)中,追加亂數 $p$ 的分佈大致為:

$$P(p=1)\approx 0.92$$ $$P(p=2)\approx 0.077$$ $$P(p=3)\approx 0.0044$$

程度である。すなわち「トラックが本当に動かない偶数 $p$」が発生する確率は数%程度に小さく、 操作確率に与える誤差はおおむね $0.1–1\%$ 程度に収まる。

Thus, the probability of an even $p$ (where the track does not actually move) is as small as a few percent, and the resulting error in controllability is generally within $0.1–1\%$.

換言之,發生「軌道真的沒動的偶數 $p$」之機率極低(僅數個百分點),對操作機率造成的誤差大約落在 $0.1–1\%$ 之間。

後述のトラック操作可能性は、こうしたレアケースを無視した「理論上の最大操作性能」を表しており、 実際の挙動はこれよりわずかに低くなる点に注意されたい。

Please note that the "Track Controllability" described later represents the "theoretical maximum operational performance" ignoring these rare cases, and actual behavior will be slightly lower.

請注意,後述的「軌道操作可能性」代表的是忽略這些極少數情況下的「理論最大操作性能」,實際表現會比該數值略低。

同時分布 $p_{ij}$ の導入

Introduction of Joint Distribution $p_{ij}$

導入聯合分佈 $p_{ij}$

通常、2回のロール $r=1, 2$ は独立であるが、先に述べたように、同一ロール内における $X$ と $Y$ の結果は、 同じ乱数 $(a, b)$ を共有しているため従属関係にある。 この従属性を正しく扱うため、1 ロールにおける $X$ と $Y$ の結果の同時分布を以下のように定義する。

While two rolls $r=1, 2$ are typically independent, as mentioned earlier, the results of $X$ and $Y$ within the same roll are dependent because they share the same random numbers $(a, b)$. To correctly handle this dependency, the joint distribution of the outcomes of $X$ and $Y$ in a single roll is defined as follows.

通常兩次抽選 $r=1, 2$ 是相互獨立的,但如前所述,在同一次抽選中 $X$ 與 $Y$ 的結果因共享相同的亂數 $(a, b)$ 而具有相依關係。為了正確處理此相依性,我們將單次抽選中 $X$ 與 $Y$ 結果的聯合分佈定義如下。

重複判定の対象となるレア1アイテムの集合を $S$ とし、それ以外を $\bot$ として、 $$p_{ij} := P(X_r = i, Y_r = j), \quad (i,j \in S \cup \{\bot\})$$

Let $S$ be the set of "Rare 1" items subject to duplicate checking, and $\bot$ represent others. We define: $$p_{ij} := P(X_r = i, Y_r = j), \quad (i,j \in S \cup \{\bot\})$$

定義 $S$ 為重複判定對象的「稀有 1」道具集合,其餘為 $\bot$: $$p_{ij} := P(X_r = i, Y_r = j), \quad (i,j \in S \cup \{\bot\})$$

この $p_{ij}$ は、レアリティ判定の閾値による確率や、前述の $U_b$ 区間の重なり $L_{k\ell}$ を用いて構築される。 例えば、両方ともレア1が選ばれる領域において、Xでアイテム $s$、Yでアイテム $t$ が選ばれる確率は、 それに対応する区間の重なり長さ $L_{k\ell}$ に比例する: $$p_{s,t} \ += \ \min(p_X, p_Y) \sum_{(k,\ell): X[k]=s, Y[\ell]=t} L_{k\ell}$$ このように構築された $p_{ij}$ は、乱数共有による従属性、リストのズレ、レアリティ構成の違いといった情報をすべて含んでいる。 以降の計算はすべて、この $p_{ij}$ を用いて機械的に導出できる。

This $p_{ij}$ is constructed using probabilities based on rarity determination thresholds and the previously mentioned interval overlaps $L_{k\ell}$ of $U_b$. For example, in a region where both gachas select Rare 1, the probability of selecting item $s$ in $X$ and item $t$ in $Y$ is proportional to the corresponding interval overlap length $L_{k\ell}$: $$p_{s,t} \ += \ \min(p_X, p_Y) \sum_{(k,\ell): X[k]=s, Y[\ell]=t} L_{k\ell}$$ The $p_{ij}$ constructed this way contains all information regarding dependency due to shared random numbers, list offsets, and differences in rarity configuration. All subsequent calculations can be derived mechanically using this $p_{ij}$.

此 $p_{ij}$ 是利用稀有度判定閾值所產生的機率,以及前述 $U_b$ 區間重疊 $L_{k\ell}$ 來建構的。例如,在兩者皆選中「稀有 1」的區域內,在 $X$ 選中道具 $s$ 且在 $Y$ 選中道具 $t$ 的機率,會與其對應區間的重疊長度 $L_{k\ell}$ 成正比: $$p_{s,t} \ += \ \min(p_X, p_Y) \sum_{(k,\ell): X[k]=s, Y[\ell]=t} L_{k\ell}$$ 如此建構出的 $p_{ij}$ 包含了因共享亂數產生的相依性、清單偏移以及稀有度構造差異等所有資訊。後續的所有計算皆可透過此 $p_{ij}$ 機械式地推導出來。

基本的な事象の定義と $p_{ij}$ による表現

Definition of Basic Events and Expression via $p_{ij}$

基本事件定義與 $p_{ij}$ 表示法

ここから、発動確率と回避確率の導出を行うが、その前に簡単に基本的な事象の定義を行う。
2 ロール分の結果 $(X_1, Y_1), (X_2, Y_2)$ に対し、

Now we derive the activation and avoidance probabilities, but first, we briefly define the basic events. For the outcomes of two rolls $(X_1, Y_1), (X_2, Y_2)$:

接下來我們將推導觸發機率與迴避機率,但在那之前,先簡單定義基本事件。針對兩次抽選的結果 $(X_1, Y_1), (X_2, Y_2)$:

  • $X \to X$ で重複が起こる事象… $D_{XX} := \{X_1 = X_2 \in S\}$
  • Event where a duplicate occurs in sequence $X \to X$: $D_{XX} := \{X_1 = X_2 \in S\}$
  • 在 $X \to X$ 順序下發生重複的事件:$D_{XX} := \{X_1 = X_2 \in S\}$
  • $X \to Y$ で重複が起こる事象… $D_{XY} := \{X_1 = Y_2 \in S\}$
  • Event where a duplicate occurs in sequence $X \to Y$: $D_{XY} := \{X_1 = Y_2 \in S\}$
  • 在 $X \to Y$ 順序下發生重複的事件:$D_{XY} := \{X_1 = Y_2 \in S\}$
  • $Y \to X$ で重複が起こる事象… $D_{YX} := \{Y_1 = X_2 \in S\}$
  • Event where a duplicate occurs in sequence $Y \to X$: $D_{YX} := \{Y_1 = X_2 \in S\}$
  • 在 $Y \to X$ 順序下發生重複的事件:$D_{YX} := \{Y_1 = X_2 \in S\}$
  • $Y \to Y$ で重複が起こる事象… $D_{YY} := \{Y_1 = Y_2 \in S\}$
  • Event where a duplicate occurs in sequence $Y \to Y$: $D_{YY} := \{Y_1 = Y_2 \in S\}$
  • 在 $Y \to Y$ 順序下發生重複的事件:$D_{YY} := \{Y_1 = Y_2 \in S\}$
と決める。 is defined. 以此類推。

これらの確率は、$p_{ij}$ の周辺化によって直ちに計算できる。 例えば $D_{XX}$ の確率は、ロール間の独立性より $$P(D_{XX}) = \sum_{s \in S} P(X_1=s)P(X_2=s) = \sum_{s \in S} \bigg(\sum_{j} p_{sj}\bigg)^2$$ となる。同様に、$D_{XY}$ の確率は $$P(D_{XY}) = \sum_{s \in S} P(X_1=s)P(Y_2=s) = \sum_{s \in S} \bigg(\sum_{j} p_{sj}\bigg)\bigg(\sum_{i} p_{i s}\bigg)$$ で与えられる。

These probabilities can be immediately calculated via marginalization of $p_{ij}$. For instance, due to independence between rolls, the probability of $D_{XX}$ is $$P(D_{XX}) = \sum_{s \in S} P(X_1=s)P(X_2=s) = \sum_{s \in S} \bigg(\sum_{j} p_{sj}\bigg)^2$$ Similarly, the probability of $D_{XY}$ is given by $$P(D_{XY}) = \sum_{s \in S} P(X_1=s)P(Y_2=s) = \sum_{s \in S} \bigg(\sum_{j} p_{sj}\bigg)\bigg(\sum_{i} p_{i s}\bigg)$$

這些機率可以透過 $p_{ij}$ 的邊際化(Marginalization)立即算出。例如根據兩次抽選間的獨立性,$D_{XX}$ 的機率為 $$P(D_{XX}) = \sum_{s \in S} P(X_1=s)P(X_2=s) = \sum_{s \in S} \bigg(\sum_{j} p_{sj}\bigg)^2$$ 同理,$D_{XY}$ 的機率公式為 $$P(D_{XY}) = \sum_{s \in S} P(X_1=s)P(Y_2=s) = \sum_{s \in S} \bigg(\sum_{j} p_{sj}\bigg)\bigg(\sum_{i} p_{i s}\bigg)$$

重要な複合事象

Important Compound Events

重要複合事件

  • XまたはYで重複が起こる事象… $$D := D_{XX} \cup D_{YY}$$ $$ \begin{eqnarray} P(D) &=& P(X_1=X_2) + P(Y_1=Y_2) - P(X_1=X_2, Y_1=Y_2)\\ &=& \sum_{s\in S} \left(\sum_j p_{ij}\right)^2 + \sum_{t\in S} \left(\sum_i p_{it}\right)^2 - \sum_{s\in S} (p_{ss})^2 \end{eqnarray} $$ これは「少なくともどちらかのガチャ単体では重複が発生してしまう」状況を表す。 Event where a duplicate occurs in either X or Y: $$D := D_{XX} \cup D_{YY}$$ $$ \begin{eqnarray} P(D) &=& P(X_1=X_2) + P(Y_1=Y_2) - P(X_1=X_2, Y_1=Y_2)\\ &=& \sum_{s\in S} \left(\sum_j p_{ij}\right)^2 + \sum_{t\in S} \left(\sum_i p_{it}\right)^2 - \sum_{s\in S} (p_{ss})^2 \end{eqnarray} $$ This represents the situation where "a duplicate inevitably occurs within at least one gacha standalone." 在 X 或 Y 發生重複的事件: $$D := D_{XX} \cup D_{YY}$$ $$ \begin{eqnarray} P(D) &=& P(X_1=X_2) + P(Y_1=Y_2) - P(X_1=X_2, Y_1=Y_2)\\ &=& \sum_{s\in S} \left(\sum_j p_{ij}\right)^2 + \sum_{t\in S} \left(\sum_i p_{it}\right)^2 - \sum_{s\in S} (p_{ss})^2 \end{eqnarray} $$ 這代表「至少在其中一種單獨轉蛋中會發生重複」的情況。
  • 完全重複事象… $$\mathrm{All4} := \{X_1 = X_2 = Y_1 = Y_2 \in S\}$$ $$P(\mathrm{All4}) = \sum_{s \in S} p_{ss}^2$$ これは、どの順序を選んでも必ず同じアイテム $s$ がペアになり、回避が不可能となる状況を表す。 Total Duplicate Event: $$\mathrm{All4} := \{X_1 = X_2 = Y_1 = Y_2 \in S\}$$ $$P(\mathrm{All4}) = \sum_{s \in S} p_{ss}^2$$ This represents the situation where the same item $s$ becomes a pair regardless of the chosen sequence, making avoidance impossible. 完全重複事件: $$\mathrm{All4} := \{X_1 = X_2 = Y_1 = Y_2 \in S\}$$ $$P(\mathrm{All4}) = \sum_{s \in S} p_{ss}^2$$ 這代表無論選擇哪種順序,相同的道具 $s$ 都會成對,導致無法迴避的情況。

回避確率 (Avoidance Probability)

Avoidance Probability

迴避機率 (Avoidance Probability)

「どちらかのガチャで重複が発生してしまった場合でも、ロール順を工夫することで重複を回避できる確率」を指す。

Refers to "the probability that even if a duplicate occurs in one of the gachas, it can be avoided by strategically choosing the roll sequence."

指的是「即使其中一種轉蛋發生了重複,仍能透過調整抽選順序來迴避重複的機率」。

回避確率

Avoidance Probability

迴避機率

事象 $D$ が発生したという条件の下で、回避が不可能となるのは $\mathrm{All4}$ のケースのみである。 したがって、回避確率 $P_{\mathrm{avoid}}$ は簡潔に次式で表される。

Under the condition that event $D$ has occurred, avoidance is impossible only in the $\mathrm{All4}$ case. Therefore, the avoidance probability $P_{\mathrm{avoid}}$ can be simply expressed by the following equation.

在事件 $D$ 發生的條件下,僅有在 $\mathrm{All4}$ 的情況下無法迴避。因此,迴避機率 $P_{\mathrm{avoid}}$ 可以透過以下公式簡潔地表示。

$$ \boxed{ P_{\mathrm{avoid}} = 1 - \frac{P(\mathrm{All4})}{P(D)} } $$

片側回避確率

One-sided Avoidance Probability

單側迴避機率

「$X$で重複が起こる($D_{XX}$)ときに、$Y$を介して($X\to Y$または$Y\to X$で)回避できる」確率。 条件が $D_{XX}$ に限定されるため、式は以下のようになる。

The probability that "when a duplicate occurs in $X$ ($D_{XX}$), it can be avoided via $Y$ (by $X\to Y$ or $Y\to X$)." Since the condition is restricted to $D_{XX}$, the formula is as follows.

「當 $X$ 發生重複($D_{XX}$)時,透過 $Y$(經由 $X\to Y$ 或 $Y\to X$)得以迴避」的機率。由於條件僅限於 $D_{XX}$,公式如下。

$$ P_{\mathrm{avoid}}^{(X)} = 1 - \frac{P(\mathrm{All4})}{P(D_{XX})} $$ $Y$側の片側確率も同様に求められる。 The one-sided probability for $Y$ can be derived in the same manner. $Y$ 側的單側機率亦可以同樣方式求得。

発動確率 (Activation Probability)

Activation Probability

觸發機率 (Activation Probability)

「現在は重複が発生していないが、ロール順を工夫することで意図的にペア(重複)を作り出せる確率」を指す。

Refers to "the probability that although no duplicate is currently present, a pair (duplicate) can be intentionally created by strategically choosing the roll sequence."

指的是「目前尚未發生重複,但能透過調整抽選順序來刻意製造出配對(重複)的機率」。

発動確率

Activation Probability

觸發機率

X でも Y でもまだ重複していない状況 $\overline{D} := \overline{D_{XX}} \cap \overline{D_{YY}}$ のもとで、 $D_{XY}, D_{YX}, D_{XX}, D_{YY}$ のいずれかを成立させられる確率である。 これはブール条件を用いた指示関数 $\mathbf{1}[\cdot]$ により、1つの式で記述できる。

The probability that, given the situation $\overline{D} := \overline{D_{XX}} \cap \overline{D_{YY}}$ where no duplicate has occurred in either X or Y, one of $D_{XY}, D_{YX}, D_{XX}, D_{YY}$ can be established. This can be described in a single equation using the indicator function $\mathbf{1}[\cdot]$ with Boolean conditions.

在 $X$ 與 $Y$ 皆未發生重複的狀況 $\overline{D} := \overline{D_{XX}} \cap \overline{D_{YY}}$ 下,促使 $D_{XY}, D_{YX}, D_{XX}, D_{YY}$ 其中之一成立的機率。這可以透過結合布林條件的指示函數 $\mathbf{1}[\cdot]$ 以單一公式表示。

$$ \boxed{ P_{\mathrm{act}} = \dfrac{ \displaystyle \sum_{i_1,j_1,i_2,j_2} p_{i_1 j_1} p_{i_2 j_2}\; \mathbf{1}[\overline{D}]\; \mathbf{1}[D_{XY} \lor D_{YX} \lor D_{XX} \lor D_{YY}] }{ \displaystyle \sum_{i_1,j_1,i_2,j_2} p_{i_1 j_1} p_{i_2 j_2}\; \mathbf{1}[\overline{D}] } } $$

片側発動確率

One-sided Activation Probability

單側觸發機率

「X では重複していない ($\overline{D_{XX}}$) とき、Y を利用してペアを作れる」という確率。 この場合、利用可能なペアは $D_{XY}, D_{YX}, D_{YY}$ である。

The probability that "when no duplicate is present in X ($\overline{D_{XX}}$), a pair can be created using Y." In this case, the available pairs are $D_{XY}, D_{YX}, D_{YY}$.

「當 $X$ 未發生重複($\overline{D_{XX}}$)時,利用 $Y$ 製造出配對」的機率。在此情況下,可利用的配對為 $D_{XY}, D_{YX}, D_{YY}$。

$$ \begin{eqnarray} P_{\mathrm{act}}^{(X)} &=& \frac{P(\overline{D_{XX}} \cap (D_{XY} \cup D_{YX} \cup D_{YY}))}{P(\overline{D_{XX}})}\\ &=& \frac{\sum_{i_1,j_1,i_2,j_2}{p_{i_1j_1}p_{i_2j_2}\mathbf{1}[not(i_1=i_2\in S)]\mathbf{1}[(i_1=j_2\in S)\lor (j_1=i_2\in S) \lor (j_1=j_2\in S)]}}{P(\overline{D_{XX}})\mathbf{1}[not(i_1=i_2\in S)]} \end{eqnarray} $$ $Y$側の片側確率も同様に求められる。 The one-sided probability for $Y$ can be derived in the same manner. $Y$ 側的單側機率亦可以同樣方式求得。

トラック操作可能性 (Track Controllability)

Track Controllability

軌道操作可能性 (Track Controllability)

最後に、これらを統合した指標を定義する。 トラック操作の戦略上プレイヤーにとって最も関心があるのは、「重複させたいときにさせることができ、避けたいときに避けることができるか」という選択の自由度であるため、 これを「トラック操作可能性 $P_{\mathrm{track}}$」と定義する: $$P_{\mathrm{track}} := P(\text{避けたいときに避けられる} \lor \text{作りたいときに作れる})$$

Finally, we define an integrated index. Since the primary interest in track manipulation strategy is the degree of choice—specifically, "whether one can trigger a duplicate when desired and avoid it when not"—we define this as "Track Controllability $P_{\mathrm{track}}$": $$P_{\mathrm{track}} := P(\text{Avoidable when desired} \lor \text{Triggerable when desired})$$

最後,我們定義一個整合後的指標。在軌道操作戰略中,玩家最關心的是「想重複時能重複、想避開時能避開」的選擇自由度,因此我們將其定義為「軌道操作可能性 $P_{\mathrm{track}}$」: $$P_{\mathrm{track}} := P(\text{想避開時能避開} \lor \text{想製造時能製造})$$

これは全確率の法則を用いて、 「重複発生時($D$)の回避成功」と「非発生時($\overline{D}$)の発動成功」の和として計算できる。

This can be calculated using the Law of Total Probability as the sum of "successful avoidance when a duplicate occurs ($D$)" and "successful activation when it does not occur ($\overline{D}$)."

這可以利用全機率定理,計算為「發生重複時 ($D$) 迴避成功」與「未發生重複時 ($\overline{D}$) 觸發成功」之總和。

$$ P_{\mathrm{track}} = P(D)P_{\mathrm{avoid}} + P(\overline{D})P_{\mathrm{act}} $$

これに前述の式を代入し整理すると、非常にシンプルな最終形が得られる。

Substituting the previous equations and simplifying yields a very elegant final form.

將前述公式代入並整理後,可得到非常簡潔的最終形式。

$$ P_{\mathrm{track}} = P(D)\left(1 - \frac{P(\mathrm{All4})}{P(D)}\right) + (1-P(D))P_{\mathrm{act}} $$

すなわち、

That is,

也就是說,

$$ \boxed{ P_{\mathrm{track}} = P(D) - P(\mathrm{All4}) + (1-P(D))P_{\mathrm{act}} } $$

この $P_{\mathrm{track}}$ が高いほど、そのガチャの組合せはプレイヤーの戦略的意図(トラック維持・移動)に応えやすい相性を持っているといえる。

The higher this $P_{\mathrm{track}}$ value, the more compatible the gacha combination is with the player's strategic intent (maintaining or switching tracks).

此 $P_{\mathrm{track}}$ 數值越高,代表該轉蛋組合越能滿足玩家的戰略意圖(維持軌道或切換軌道)。

本モデルの限界と完全モデルを採用しない理由

Limitations of This Model and Why the Complete Model is Not Adopted

本模型的侷限性與不採用完全模型的原因

以上で導出した回避確率・発動確率・トラック操作可能性は、 「重複時には必ずトラックが切り替わる」 という仮定に基づいている。 しかし前述の通り、実際の実装では追加乱数 $p$ の偶奇によって トラックが切り替わらないケースが存在する。 このため、ここで定義した操作可能性 $P_{\mathrm{track}}$ は 現実よりわずかに高い値となる(=過大評価)という限界がある。

The avoidance probability, activation probability, and track controllability derived above are based on the assumption that "the track always switches upon a duplicate." However, as noted earlier, actual implementation includes cases where the track does not switch depending on whether the number of additional random numbers $p$ is even or odd. Thus, the controllability $P_{\mathrm{track}}$ defined here has the limitation of being slightly higher than reality (overestimation).

以上推導出的迴避機率、觸發機率與軌道操作可能性,皆基於「發生重複時軌道必然切換」的假設。但如前所述,實際實作中存在追加亂數 $p$ 為偶數而導致軌道未切換的情況。因此,這裡定義的操作可能性 $P_{\mathrm{track}}$ 存在侷限性,其數值會比實際情況略高(即過度評估)。

より厳密なモデルを構築するには、各レア1アイテムに対して 「重複数 $d$ に応じた $p=1,2,\dots,d$ の発生確率分布」を求め、 2 ロール分の組合せ $(X_1,Y_1),(X_2,Y_2)$ の全てについて

To construct a more rigorous model, one would need to determine the "probability distribution of $p=1,2,\dots,d$ based on the duplicate count $d$" for each Rare 1 item, and for all combinations of two rolls $(X_1,Y_1),(X_2,Y_2)$, convolve:

若要建構更嚴密的模型,必須針對各個「稀有 1」道具求出「對應重複數 $d$ 的 $p=1,2,\dots,d$ 發生機率分佈」,並針對兩次抽選的所有組合 $(X_1,Y_1),(X_2,Y_2)$ 進行捲積:

  • 各重複イベントに対する $p$ の確率分布
  • The probability distribution of $p$ for each duplicate event.
  • 各重複事件對應的 $p$ 機率分佈。
  • $p$ の偶奇によるトラック遷移の確率
  • The probability of track transition based on the parity (even/odd) of $p$.
  • 基於 $p$ 奇偶性的軌道遷移機率。
  • 4 種類の並べ替え($XX,XY,YX,YY$)それぞれの成立確率
  • The success probability of each of the four permutations ($XX, XY, YX, YY$).
  • 四種排列順序($XX, XY, YX, YY$)各自的成立機率。

をすべて畳み込む必要がある。この計算は非常に複雑であり、 レア1リストの長さ $n,m$ が 50–100 のとき、 全ての $(i,j)$ のペアに対して $p$ 分布を展開するだけでも数百万〜数千万の項が必要になる。

This computation is extremely complex. With Rare 1 list lengths $n, m$ between 50 and 100, expanding the $p$ distribution for every $(i, j)$ pair alone would require millions or tens of millions of terms.

將上述各項全部整合。此計算極其複雜,當「稀有 1」清單長度 $n, m$ 為 50–100 時,單是展開所有 $(i, j)$ 配對的 $p$ 分佈就需要數百萬到數千萬個項。

さらに、$p$ の確率分布は単純ではなく、 「失敗したときにリストの長さが1ずつ減り、成功確率が漸増する」 という非一様・非マルコフ構造を持っているため、 正確な解析解を得ることは困難である。

Furthermore, the probability distribution of $p$ is not simple; it possesses a non-uniform, non-Markovian structure where "the list length decreases by one upon failure, causing the success probability to increase incrementally," making it difficult to obtain an exact analytical solution.

此外,$p$ 的機率分佈並不單純,它具有「失敗時清單長度減少 1 且成功機率遞增」的非均勻、非馬可夫結構(Non-Markovian structure),因此難以取得精確的解析解。

このように、完全モデルは計算量が爆発し、ブラウザ上で実用的に計算することは難しい。 そのため、本モデルでは “重複時はトラック移動が起こる” とする合理的な近似を採用し、 誤差は「最大でも数 % 程度」に収まることを示したうえで、 トラック操作可能性の評価指標として利用している。

As such, the complete model suffers from a computational explosion, making it impractical for browser-based calculations. Therefore, this model adopts a reasonable approximation that "a track switch occurs upon a duplicate." Having demonstrated that the error remains within "a few percent at most," we utilize it as an evaluation metric for track controllability.

綜上所述,完全模型的計算量會發生爆炸性增長,難以在瀏覽器上進行實用計算。因此,本模型採用了「發生重複時必然換軌」的合理近似,並在證明誤差「最高僅約數個百分點」後,將其作為軌道操作可能性之評估指標。

キャラクター発見位置と確率モデル Character Discovery Positioning & Probability Models 角色出現位置與機率模型

発見位置に基づく確率的評価指標

Probabilistic Evaluation Metrics Based on Discovery Position

基於出現位置的機率評估指標

前提:排出(成功)確率と発見位置の定義

Premise: Definition of Drop (Success) Probability and Discovery Position

前提:排出(成功)機率與出現位置的定義

キャラクター検索結果に基づき、「キャラクターが発見されるまでに要した試行回数」を確率的に評価する。 キャラクターがヒットした瞬間を「成功」、抽選機会を「試行」と呼ぶ。 1 スロットには A, B の 2 回の抽選があるため、たとえば実際の表示が 120A であれば、 対応する試行回数は $y_1 = 240$ とする。

Based on character search results, we probabilistically evaluate the "number of attempts required until a character is discovered." The moment a character is hit is called a "success," and each lottery opportunity is an "attempt." Since one slot contains two draws, A and B, if the actual display is 120A, the corresponding number of attempts is defined as $y_1 = 240$.

根據角色搜尋結果,對「發現角色前所需的嘗試次數」進行機率性評估。角色中籤的瞬間稱為「成功」,每次抽選機會稱為「嘗試」。由於一個位置包含 AB 兩次抽選,若實際顯示為 120A,則對應的嘗試次數設定為 $y_1 = 240$。

成功確率は次式で定義する:

The success probability is defined by the following formula:

成功機率定義如下:

$$x = (\text{レアリティの排出確率}) \times \frac{1}{\text{アイテムリストの個数}}$$

$$x = (\text{Rarity Drop Rate}) \times \frac{1}{\text{Number of Items in List}}$$

$$x = (\text{稀有度排出機率}) \times \frac{1}{\text{道具清單數量}}$$

キャラクターが見つかった位置を $y_1, y_2, \dots, y_n$ とし、 $k$ 回目の成功までに必要な試行回数を $y_k$ とする(実装では $n=5$)。 このとき $y_k$ は 負の二項分布 $NB(k,x)$ に従う。

Let $y_1, y_2, \dots, y_n$ be the positions where the characters were found, and $y_k$ be the number of attempts required until the $k$-th success (where $n=5$ in implementation). In this case, $y_k$ follows a negative binomial distribution $NB(k,x)$.

假設發現角色的位置為 $y_1, y_2, \dots, y_n$,到第 $k$ 次成功所需的嘗試次數為 $y_k$(實作中 $n=5$)。此時 $y_k$ 服從 負二項分佈 $NB(k,x)$。

相対効率 $R_k$:期待値に対する相対指標

Relative Efficiency $R_k$: A Relative Metric Against Expected Value

相對效率 $R_k$:相對於期望值的評估指標

$k$ 回目の成功までに必要な試行回数の期待値は $$E[y_k] = \frac{k}{x}.$$ 期待値との相対偏差を百分率化した指標 $R_k[\%]$ を次のように定義する: $$R_k = \left(1 - \frac{x y_k}{k}\right) \times 100.$$ $R_k > 0$ なら期待値より早い成功、$R_k < 0$ なら遅い成功を意味する。 数学的には $y_k$ の一次関数であり、線形の評価尺度である。

The expected number of attempts required until the $k$-th success is $$E[y_k] = \frac{k}{x}.$$ We define the metric $R_k[\%]$, which converts the relative deviation from the expected value into a percentage, as follows: $$R_k = \left(1 - \frac{x y_k}{k}\right) \times 100.$$ If $R_k > 0$, it signifies a success earlier than expected; if $R_k < 0$, it signifies a later success. Mathematically, it is a linear function of $y_k$, serving as a linear evaluation scale.

到第 $k$ 次成功所需的嘗試次數期望值為 $$E[y_k] = \frac{k}{x}。$$ 將與期望值的相對偏差百分比化,定義指標 $R_k[\%]$ 如下: $$R_k = \left(1 - \frac{x y_k}{k}\right) \times 100。$$ 若 $R_k > 0$ 代表比期望值更早成功,$R_k < 0$ 則代表較晚成功。從數學角度看,這是 $y_k$ 的一次函數,屬於線性評估尺度。

累積確率 $Q_k$:統計的順位としての指標

Cumulative Probability $Q_k$: A Metric for Statistical Ranking

累積機率 $Q_k$:作為統計排名的指標

$Q_k[\%]$ は、「$y_k$ 回目までに $k$ 回成功している確率」 $$Q_k = P(Y_k \le y_k) \times 100$$ と定義する。ただし右側確率(上位%)として使用するため、解釈上は 「他のプレイヤーよりどれだけ早かったか」を示す順位指標となる。

$Q_k[\%]$ is defined as "the probability of achieving $k$ successes within $y_k$ attempts": $$Q_k = P(Y_k \le y_k) \times 100.$$ Since this is used as a right-tail probability (top percentage), it serves as a ranking index indicating "how much earlier the success was compared to other players."

$Q_k[\%]$ 定義為「在第 $y_k$ 次嘗試前已達成 $k$ 次成功的機率」: $$Q_k = P(Y_k \le y_k) \times 100。$$ 由於此指標被當作右尾機率(前百分之幾)使用,在解釋上它是一個顯示「比起其他玩家有多早中籤」的排名指標。

負の二項分布の累積確率は、次式のように書ける: $$P(Y_k \le y_k) = \sum_{j=k}^{y_k} \binom{j-1}{k-1} x^k (1-x)^{j-k}.$$ これは同値変形により、 「$y_k$ 回の試行で成功回数が $k$ 回以上となる二項分布の確率」 と等価である: $$P(Y_k \le y_k) = \sum_{r=k}^{y_k} P_{\mathrm{Binomial}}(r; y_k, x).$$

The cumulative probability of a negative binomial distribution can be written as: $$P(Y_k \le y_k) = \sum_{j=k}^{y_k} \binom{j-1}{k-1} x^k (1-x)^{j-k}.$$ Through equivalent transformation, this is equivalent to "the probability that the number of successes in $y_k$ trials is $k$ or more in a binomial distribution": $$P(Y_k \le y_k) = \sum_{r=k}^{y_k} P_{\mathrm{Binomial}}(r; y_k, x).$$

負二項分佈的累積機率可寫作: $$P(Y_k \le y_k) = \sum_{j=k}^{y_k} \binom{j-1}{k-1} x^k (1-x)^{j-k}。$$ 透過等價變形,這與「在 $y_k$ 次嘗試中成功次數達到 $k$ 次或以上的二項分佈機率」相等: $$P(Y_k \le y_k) = \sum_{r=k}^{y_k} P_{\mathrm{Binomial}}(r; y_k, x)。$$

正規分布近似とその誤差

Normal Distribution Approximation and Its Error

常態分佈近似及其誤差

二項分布 $Binomial(y_k, x)$ は、 $y_k x \ge 5$ かつ $y_k (1-x) \ge 5$ の条件で、 平均 $\mu = y_k x$、分散 $\sigma^2 = y_k x (1-x)$ の正規分布で近似できる。 連続性補正を用いると、$Q_k$ は次式で近似される: $$Z = \frac{k - 0.5 - y_k x}{\sqrt{y_k x (1-x)}},$$ $$Q_k \approx \{1 - \Phi(Z)\} \times 100.$$ 誤差は $x$ が極端に 0 または 1 に近い場合、あるいは $k$ が小さい場合に増大するが、 通常のガチャ確率(1–10% 程度)では小数点 1〜2 桁の精度を保つため、 実装上はこの近似に基づいている。

The binomial distribution $Binomial(y_k, x)$ can be approximated by a normal distribution with mean $\mu = y_k x$ and variance $\sigma^2 = y_k x (1-x)$ under the conditions $y_k x \ge 5$ and $y_k (1-x) \ge 5$. Using continuity correction, $Q_k$ is approximated as: $$Z = \frac{k - 0.5 - y_k x}{\sqrt{y_k x (1-x)}},$$ $$Q_k \approx \{1 - \Phi(Z)\} \times 100.$$ The error increases when $x$ is extremely close to 0 or 1, or when $k$ is small. However, for typical gacha probabilities (around 1–10%), accuracy is maintained within 1–2 decimal places; thus, the implementation relies on this approximation.

在 $y_k x \ge 5$ 且 $y_k (1-x) \ge 5$ 的條件下,二項分佈 $Binomial(y_k, x)$ 可以用平均值 $\mu = y_k x$、變異數 $\sigma^2 = y_k x (1-x)$ 的常態分佈來近似。使用連續性修正(Continuity Correction)後,$Q_k$ 的近似值如下: $$Z = \frac{k - 0.5 - y_k x}{\sqrt{y_k x (1-x)}},$$ $$Q_k \approx \{1 - \Phi(Z)\} \times 100。$$ 當 $x$ 極端接近 0 或 1,或是 $k$ 較小時,誤差會增加,但在一般的轉蛋機率(約 1–10%)下,能保持小數點後 1 到 2 位的精度,因此實作上採用此近似法。

$n$ 回分の発見位置を用いた平均的評価

Average Evaluation Using $n$ Discovery Positions

利用 $n$ 次出現位置進行的平均評估

成功間隔を $$z_1 = y_1,\quad z_2 = y_2 - y_1,\; \dots,\; z_n = y_n - y_{n-1}$$ と定義すると、各 $z_k$ は幾何分布 $Geo(x)$ に従い、$E[z_k] = 1/x$ となる。 また $$\bar{z} = \frac{z_1 + \dots + z_n}{n} = \frac{y_n}{n}$$ が成り立つので、以下の平均的な指標を定義できる。

Defining the success intervals as $$z_1 = y_1,\quad z_2 = y_2 - y_1,\; \dots,\; z_n = y_n - y_{n-1},$$ each $z_k$ follows a geometric distribution $Geo(x)$ with $E[z_k] = 1/x$. Since $$\bar{z} = \frac{z_1 + \dots + z_n}{n} = \frac{y_n}{n}$$ holds, we can define the following average metrics.

將成功間隔定義為 $$z_1 = y_1,\quad z_2 = y_2 - y_1,\; \dots,\; z_n = y_n - y_{n-1},$$ 則每個 $z_k$ 服從幾何分佈 $Geo(x)$,且 $E[z_k] = 1/x$。由於 $$\bar{z} = \frac{z_1 + \dots + z_n}{n} = \frac{y_n}{n}$$ 成立,因此可以定義以下平均指標。

平均的指標 $\bar{R}[\%]$

Average Metric $\bar{R}[\%]$

平均指標 $\bar{R}[\%]$

$$\bar{R} = (1 - x \bar{z}) \times 100.$$

平均的指標 $\bar{Q}[\%]$

Average Metric $\bar{Q}[\%]$

平均指標 $\bar{Q}[\%]$

$$\bar{Q} = \left(1 - (1-x)^{\lceil \bar{z} \rceil}\right) \times 100.$$

これにより、複数回の成功間隔を通じた総合的な評価が可能となる。 ただし実装上は、プレイヤーの体感に最も影響する初回成功位置 $y_1$ を主指標として採用している。

This allows for a comprehensive evaluation across multiple success intervals. However, in practice, the initial success position $y_1$—which has the greatest impact on player perception—is used as the primary metric.

這使得透過多次成功間隔進行綜合評估成為可能。但在實作中,我們採用對玩家體感影響最大的首次成功位置 $y_1$ 作為主指標。

シード値計算ユーティリティ Seed Value Calculation Utilities 種子值計算工具
PRNG
シードの前後計算 Next/Prev Seed 前後種子計算
± steps
結果待機中... Awaiting input... 等待輸入...
目標到達までの距離 Distance to Target 距離目標次數
現在のシードからの距離を計算します Calculate distance from current seed 計算距離目前種子的次數
探索アルゴリズムの考察 Analysis of Search Algorithms 搜尋演算法考察

A*探索の非効率性と問題の本質

Inefficiency of A* Search and the Essence of the Problem

A* 搜尋的低效率與問題本質

評価関数の平坦さと探索のジレンマ

Flat Evaluation Functions and the Search Dilemma

評估函數的平坦性與搜尋困境

現在、公開しているプログラムでは、ヒューリスティック係数を20程度の大きな値に設定しているため、探索自体は極めて高速に進行する。しかし、これは最適解を求めるための精度が粗いことを意味する。この値を小さくして真面目に最適解を探索しようとすると、途端に探索速度が極端に低下するジレンマに直面する。

In the currently released program, the heuristic coefficient is set to a large value (around 20), allowing the search to proceed extremely fast. However, this implies low precision in finding the optimal solution. When attempting to search for the true optimal solution by reducing this value, one immediately faces a dilemma: the search speed drops exponentially.

在目前公開的程式中,啟發式係數(Heuristic Coefficient)設定為 20 左右的大值,因此搜尋速度極快。然而,這也意味著追求最優解的精度較為粗糙。一旦縮小此數值以認真搜尋最優解,便會立刻面臨搜尋速度大幅下降的困境。

この原因は、問題の構造にある。

The cause lies in the structure of the problem itself.

其原因在於問題的結構。

  • 平坦な評価関数: ほとんどの単発ロールでは、ターゲットキャラクターの入手確率は7%程度と低く、残りターゲット数が変わることは稀である。このため、ヒューリスティック値 $h(n)$ がほとんど変化せず、結果として評価関数 $f(n) = g(n) + h(n)$ の値は、ロール数 $g(n)$ に応じて $+1$ ずつしか増えない。そのため、探索はゴールへの明確な方向性を見失う。 Flat Evaluation Function: In most single rolls, the acquisition probability of a target character is low (around 7%), and the number of remaining targets rarely changes. Consequently, the heuristic value $h(n)$ remains nearly constant, and the evaluation function $f(n) = g(n) + h(n)$ only increases by $+1$ per roll $g(n)$. Thus, the search loses a clear direction toward the goal. 平坦的評估函數:在大多數的單抽中,目標角色的取得機率僅約 7% 左右,剩餘目標數很少發生變化。因此,啟發值 $h(n)$ 幾乎沒有變動,導致評估函數 $f(n) = g(n) + h(n)$ 的值僅隨著抽數 $g(n)$ 每次 $+1$ 遞增。這使得搜尋失去了朝向目標的明確方向感。
  • 横方向への膨張: 探索は明確な指針を持てず、ただただ横方向に膨大な数のノードを展開してしまう(組合せ爆発)。この構造が、真面目な探索を非効率にしている。 Lateral Expansion: Lacking clear guidance, the search simply expands an enormous number of nodes laterally (combinatorial explosion). This structure makes a rigorous search inefficient. 橫向膨脹:搜尋缺乏明確指引,僅僅是在橫向上展開龐大數量的節點(組合爆炸)。這種結構使得嚴謹的搜尋變得極其低效。

問題の本質:ドメイン特化型アルゴリズムの必要性

The Essence: Necessity of Domain-Specific Algorithms

問題本質:領域特定演算法的必要性

現在の課題を俯瞰すると、探索の本質は「11連も単発も等しく数撃ちゃ当たる」という感じの探索ではないことがわかる。中心となるのは以下の2点に集約される。

Looking at the current challenges, it is clear that the essence of the search is not a simple "trial and error" where 11-rolls and single-rolls are treated equally. The core issues can be summarized into the following two points:

俯瞰目前的課題,可以發現搜尋的本質並非那種「無論 11 連抽或單抽,只要多抽幾次就會中」的隨機探索。核心問題可以總結為以下兩點:

  1. 少ない11連をいかに有効活用するか(確定枠の価値の最大化)。
  2. How to effectively utilize the limited number of 11-rolls (maximizing the value of guaranteed slots).
  3. 如何有效活用有限的 11 連抽(確保名額價值的最大化)。
  4. 宝探しのような低確率でルート上に存在するターゲットキャラクターを、単発レーンから効率的に見つけ出すか。
  5. How to efficiently identify target characters—who exist on the routes with low probability, like a treasure hunt—from the single-roll lanes.
  6. 如何從單抽軌道中,高效地尋找出那些像尋寶一樣以低機率存在於路徑上的目標角色。

つまり、「11連を単発のレーンのどこに配置するのが最適か」という、価値の異なるアクション(マクロアクション)の配置問題として捉え直すことができる。

In other words, the problem can be reframed as an allocation problem of actions with different values (macro-actions): "Where is the optimal position to place 11-rolls within the single-roll lane?"

換句話說,這可以重新理解為一個針對不同價值行動(宏觀行動,Macro-actions)的配置問題,即「在單抽軌道的哪個位置配置 11 連抽才是最優的」。

この問題特有の状況を生かした、ドメイン特化型のアルゴリズム設計の思想が必要になると考えられる。

It is thought that a domain-specific algorithm design philosophy, leveraging the unique characteristics of this problem, is required.

看來有必要採用一種利用此問題特有狀況的「領域特定型(Domain-specific)」演算法設計思想。


アルゴリズムの再設計と分野の特定

Algorithm Redesign and Field Categorization

演算法重新設計與領域界定

この問題は、探索空間が巨大で評価関数が平坦であり、1つ1つのアクションの価値が非対称であるという特徴を持つ。この問題はコンピュータサイエンスのどの分野に分類されるだろう?

This problem is characterized by a massive search space, a flat evaluation function, and asymmetrical values for individual actions. In which field of computer science should this be categorized?

此問題具有搜尋空間巨大、評估函數平坦、且個別行動價值非對稱等特徵。這在計算機科學中應歸類於哪個領域?

分類と類似問題

Classification and Similar Problems

分類與相似問題

本問題は、以下の分野にまたがる複合的な問題であると考えらえる。

This is considered a complex problem spanning the following fields:

本問題被認為是一個跨越多個領域的複合型問題:

  • 組合せ最適化 (Combinatorial Optimization): 順序とコストの最小化を扱うため、巡回セールスマン問題(TSP)や車両配送計画問題(VRP)の一般系に類似する。ただし、本問題はアクション選択によって後の状態(乱数テーブル)が動的に変わる点が異なる。 Combinatorial Optimization: Since it deals with sequence and cost minimization, it resembles generalized forms of the Traveling Salesman Problem (TSP) or Vehicle Routing Problem (VRP). However, it differs in that action choices dynamically change subsequent states (random number tables). 組合最優化 (Combinatorial Optimization):由於涉及順序與成本最小化,類似於旅行推銷員問題(TSP)或車輛路線問題(VRP)的一般形式。不同之處在於,本問題中選擇行動會動態改變後續狀態(隨機數表)。
  • 確率的計画法 (Stochastic Programming): ターゲットの出現という確率的な要素(不確実性)の下で、最適な行動を決定していくプロセスであるため、この分野にも関連する。 Stochastic Programming: Related to this field as it involves determining optimal actions under probabilistic elements (uncertainty), specifically the appearance of targets. 隨機規劃 (Stochastic Programming):在目標出現這種機率性要素(不確定性)下決定最優行動的過程,因此與此領域相關。
  • ゲームAIの探索技術: モンテカルロ木探索 (MCTS) など、平坦な探索空間や報酬が遅延する問題に対する探索技術が参考になるかもしれない。ただ、本問題には乱数テーブルという明確な状態空間があるため、過剰なランダム性が必要かは議論の余地がある。 Game AI Search Techniques: Techniques for flat search spaces or delayed rewards, such as Monte Carlo Tree Search (MCTS), might be useful. However, since this problem has a well-defined state space (random number tables), the necessity of excessive randomness is debatable. 遊戲 AI 搜尋技術:針對平坦搜尋空間或延遲回報問題的搜尋技術(如蒙地卡羅樹搜尋 MCTS)或許具有參考價值。但由於本問題擁有明確的狀態空間(隨機數表),是否需要過度的隨機性仍有待商榷。

マクロアクションによる階層的計画法も考えられるが、最適性を失わずに問題を構造化するのは困難であり、有望なアプローチとは言えないかもしれない。まずは、この問題を他の既知の問題に帰着できないかを検討し、その問題の有力なアルゴリズムを転用することが現実的だと考える。

Hierarchical planning using macro-actions is another possibility, but structuring the problem without losing optimality is difficult and might not be a promising approach. It seems more practical to first consider whether this problem can be reduced to other known problems and then adapt effective algorithms from those fields.

雖然也可以考慮基於宏觀行動的階層式規劃,但在不失去最優性的情況下將問題結構化非常困難,可能並非明智之舉。我認為首先探討是否能將此問題歸約(Reduction)為其他已知問題,並轉用該領域的強大演算法,才是較為現實的做法。

例えば、制約充足問題(SATソルバー)として解くことも一つの選択肢になり得る。このような問題は、深遠なNP困難な問題にもつながりそうで、非常に興味深い分野である。

For instance, solving it as a Constraint Satisfaction Problem (SAT solver) could be an option. Such problems likely lead to profound NP-hard challenges, making this a very intriguing area of study.

例如,將其作為約束滿足問題(SAT 求解器)來解決也是一種選擇。這類問題似乎與深奧的 NP 困難(NP-hard)問題掛鉤,是一個非常有趣的領域。


次の課題:価値の高い11連の探索

Next Challenge: Searching for High-Value 11-Rolls

下一個課題:搜尋高價值的 11 連抽

新しいアルゴリズム設計の第一歩として、「価値の高い11連」をどう定義し、どう探索するかが鍵となる。これは、現在のA*探索のヒューリスティックに方向性を与える、新しいマクロなヒューリスティックになり得る。

As the first step in designing a new algorithm, the key lies in defining and searching for "high-value 11-rolls." This could serve as a new macro-heuristic that provides direction to the current A* search heuristics.

作為新演算法設計的第一步,如何定義並搜尋「高價值 11 連抽」將是關鍵。這可能成為一種新型的宏觀啟發式方法,為目前的 A* 搜尋引導方向。

具体的には、以下の要素を考慮して「価値の高い11連」を特定する必要がある。

Specifically, "high-value 11-rolls" need to be identified considering the following factors:

具體而言,需要考慮以下要素來界定「高價值 11 連抽」:

  1. その11連の確定枠または道中に、未獲得のターゲットキャラがいくつ含まれているか(即時的な価値)。
  2. How many unacquired target characters are included in the guaranteed slot or along the path of that 11-roll (Immediate Value).
  3. 該 11 連抽的確保名額或途中包含了多少未獲得的目標角色(即時價值)。
  4. その11連が、後続の単発ルートで重要なキャラを早期に獲得できる位置に配置されているか(位置的な価値)。
  5. Whether the 11-roll is positioned to enable early acquisition of critical characters in subsequent single-roll routes (Positional Value).
  6. 該 11 連抽是否配置於能讓後續單抽路徑儘早獲得重要角色的位置(位置價值)。
  7. その11連を実行するまでの単発コストが低いか(コスト効率)。
  8. Whether the single-roll cost to reach and execute that 11-roll is low (Cost Efficiency).
  9. 執行該 11 連抽之前的單抽成本是否較低(成本效率)。
リロール時のセルの移動先について Target Cell Destinations During Rerolls 關於重新抽籤(Reroll)時的儲存格移動目標

リロール時のセルの移動先について

Target Cell Destinations During Rerolls

關於重新抽籤(Reroll)時的儲存格移動目標

重複(被り)が発生した際のリロールによって、次のガチャを引く位置(セル)がどこに移動するかを数学的に定式化する。シミュレーションですぐに位置を追跡できるため実用性は低いものの、動作原理を理解するための備忘録として記述する。

We mathematically formalize how the position (cell) for the next gacha draw shifts due to rerolls when a duplicate occurs. While its practical utility is low since positions can be tracked instantly via simulation, this serves as a memorandum for understanding the underlying principles of operation.

本文將數學化地定義當發生重複(被り)時,因重新抽籤(Reroll)導致下一次轉蛋位置(儲存格)移動的規則。雖然透過模擬可以立即追蹤位置,實用性不高,但作為理解運作原理的備忘錄在此記錄。

定義

Definitions

定義

テーブル上のセルの位置は、ロール番号($n \in \mathbb{N}$)とトラック($T \in \{A, B\}$)のペアで表現する。この位置を $\text{pos}$ と表記する。

A cell's position on the table is represented by a pair consisting of the roll number ($n \in \mathbb{N}$) and the track ($T \in \{A, B\}$). We denote this position as $\text{pos}$.

表格上的儲存格位置由抽卡編號($n \in \mathbb{N}$)與軌道($T \in \{A, B\}$)組成的配對來表示。此位置記作 $\text{pos}$。

$$ \text{pos} = (n, T) $$

例えば、テーブルの3行目のAトラックであれば $\text{pos} = (3, A)$ となる。

For example, the A-track in the 3rd row of the table would be $\text{pos} = (3, A)$.

例如,表格第 3 列的 A 軌道即為 $\text{pos} = (3, A)$。


単発リロール時の移動

Movement During Single-Roll Rerolls

單抽重新抽籤時的移動

単発ガチャで重複が発生し、アイテムの再抽選が開始された後、新しい乱数が $p$ 個生成されたとする(ここで $p$ は「被り時の再抽選で消費された乱数の個数」である)。

Assume a duplicate occurs in a single-roll gacha, and after the item reroll begins, $p$ new random numbers are generated (where $p$ is the "number of random numbers consumed during the duplicate reroll").

假設在單抽轉蛋中發生重複,開始重新抽選道具後,產生了 $p$ 個新的亂數(此處 $p$ 為「重複重新抽選時所消耗的亂數個數」)。

移動先の位置 $\text{pos}_{\text{new}}$ は、まず現在の位置から次のスロットへ移動した出発点 $\text{pos}_{\text{init}} = (n+1, T)$ を起点とし、そこから $p$ 回の追加の移動操作 $H$ を適用することで求められる。

The new position $\text{pos}_{\text{new}}$ is determined by taking the starting point $\text{pos}_{\text{init}} = (n+1, T)$ (which is the movement to the next slot from the current position) and applying the additional movement operation $H$ a total of $p$ times.

移動後的目標位置 $\text{pos}_{\text{new}}$,是以從目前位置移動到下一個插槽的出發點 $\text{pos}_{\text{init}} = (n+1, T)$ 為起點,並對其套用 $p$ 次追加移動操作 $H$ 來求得。

再抽選による $p$ 回の移動操作 $H$ は、以下の法則に従い、Bトラックからの移動時にのみロール番号($n$)が増加する。

The movement operation $H$ resulting from rerolls follows these rules, where the roll number ($n$) increments only when moving from track B:

重新抽選造成的 $p$ 次移動操作 $H$ 遵循以下法則,且僅在從 B 軌道移動時,抽卡編號($n$)才會增加。

$$ H(n, T) = \begin{cases} (n, B) & \text{if } T=A \\ (n+1, A) & \text{if } T=B \end{cases} $$

最終的な移動先は、出発点 $\text{pos}_{\text{init}}$ から $H$ を $p$ 回適用することで得られる。

The final destination is obtained by applying $H$ for $p$ times to the starting point $\text{pos}_{\text{init}}$.

最終的移動目標是從出發點 $\text{pos}_{\text{init}}$ 套用 $p$ 次 $H$ 後所得の結果。

$$ \text{pos}_{\text{new}} = H^p(\text{pos}_{\text{init}}) = H^p(n+1, T) $$

例: 単発移動(修正版)

Example: Single-Roll Movement (Revised)

範例:單抽移動(修正版)

現在位置を $\text{pos}_{\text{current}} = (3, A)$ とし、生成された新しい乱数の個数 $p=2$ の場合、出発点 $\text{pos}_{\text{init}} = (3+1, A) = (4, A)$ から $H^2$ を適用する。

Given the current position $\text{pos}_{\text{current}} = (3, A)$ and $p=2$ new random numbers, we apply $H^2$ from the starting point $\text{pos}_{\text{init}} = (3+1, A) = (4, A)$.

假設目前位置為 $\text{pos}_{\text{current}} = (3, A)$,且產生的新亂數個數 $p=2$,則從出發點 $\text{pos}_{\text{init}} = (3+1, A) = (4, A)$ 套用 $H^2$。

$$ \begin{align*} H^2(4, A) &= H(H(4, A)) \\ &= H(4, B) \\ &= (4+1, A) \\ &= (5, A) \end{align*} $$

最終的な移動先は $\text{pos}_{\text{new}} = (5, A)$ となる。

The final destination is $\text{pos}_{\text{new}} = (5, A)$.

最終的移動目標為 $\text{pos}_{\text{new}} = (5, A)$。


11連リロール時の移動

Movement During 11-Roll Rerolls

11 連抽重新抽籤時的移動

11連ガチャを開始する位置を $\text{pos}_{\text{current}}$ とする。道中(1連目〜10連目)で、普通に生じる乱数(20個)以上に新しく生成された乱数(被りによる再抽選)の個数を $p$ 個とする。

Let $\text{pos}_{\text{current}}$ be the starting position of an 11-roll gacha. Let $p$ be the number of newly generated random numbers (due to duplicate rerolls) in addition to the standard random numbers (20) during the process (1st to 10th rolls).

假設開始 11 連抽轉蛋的位置為 $\text{pos}_{\text{current}}$。在過程中(第 1 抽至第 10 抽),除了正常產生的亂數(20 個)之外,額外產生的新亂數(因重複而重新抽選)個數為 $p$ 個。

ここでは、操作を以下の2段階で定義する。

We define the operation in the following two stages:

此處將操作定義為以下兩個階段:

  1. 11連の実行によるインデックスの進捗を操作 $G$ で表す。これはリロールがなかった場合の最終的な確定枠の次の位置を示す。 $$ G(n, A) = (n+10, B) \quad \text{and} \quad G(n, B) = (n+11, A) $$ The index progression from executing an 11-roll is represented by operation $G$. This indicates the position following the final guaranteed slot if no rerolls occurred. $$ G(n, A) = (n+10, B) \quad \text{and} \quad G(n, B) = (n+11, A) $$ 執行 11 連抽導致的索引進度由操作 $G$ 表示。這代表在沒有重新抽選的情況下,最終確保名額之後的位置。 $$ G(n, A) = (n+10, B) \quad \text{及} \quad G(n, B) = (n+11, A) $$
  2. $p$ 個の追加乱数によるインデックスのずれを操作 $H$ で表す。 $$ H(n, A) = (n, B) \quad \text{and} \quad H(n, B) = (n+1, A) $$ The index deviation caused by $p$ additional random numbers is represented by operation $H$. $$ H(n, A) = (n, B) \quad \text{and} \quad H(n, B) = (n+1, A) $$ 由 $p$ 個追加亂數引起的索引偏移由操作 $H$ 表示。 $$ H(n, A) = (n, B) \quad \text{及} \quad H(n, B) = (n+1, A) $$

11連後の最終的な位置 $\text{pos}_{\text{new}}$ は、まず $G$ で基本移動を行い、その後に $H$ を $p$ 回適用することで求められる。

The final position $\text{pos}_{\text{new}}$ after an 11-roll is determined by first performing the basic movement with $G$, and then applying $H$ for $p$ times.

11 連抽後的最終位置 $\text{pos}_{\text{new}}$,是先透過 $G$ 進行基本移動,接著再套用 $p$ 次 $H$ 來求得。

$$ \text{pos}_{\text{new}} = H^p \circ G(\text{pos}_{\text{current}}) $$

例: 11連移動

Example: 11-Roll Movement

範例:11 連抽移動

現在位置を $\text{pos}_{\text{current}} = (3, A)$ とし、追加乱数 $p=2$ の場合、移動先は次のようになる。

If the current position $\text{pos}_{\text{current}} = (3, A)$ and additional random numbers $p=2$, the destination is as follows:

若目前位置 $\text{pos}_{\text{current}} = (3, A)$ 且追加亂數 $p=2$,則移動目標如下:

$$ \begin{align*} H^2 \circ G(3, A) &= H^2 (3+10, B) \\ &= H^2 (13, B) \\ &= H (H(13, B)) \\ &= H (13+1, A) \\ &= H (14, A) \\ &= (14, B) \end{align*} $$

最終的な移動先は $\text{pos}_{\text{new}} = (14, B)$ となる。

The final destination is $\text{pos}_{\text{new}} = (14, B)$.

最終的移動目標為 $\text{pos}_{\text{new}} = (14, B)$。