如果有能力最好读英文版How It Works,因为中文版是AI翻译的,以后慢慢修~
跳转: 概览 · 公式数 · 固定借位法 · 小循环 · 翻色 · LTCT & T2C · 群元素阶 · 高盲 · 复现
所有表格均为运行时生成。3BLD: --。Big BLD: --。
警告:本页数据尚未经过交叉验证,可能存在错误,如发现异常欢迎在 GitHub 提交 issue。全浮动示例与 CPS 示例仍在开发中,可能存在 bug,请稍后再回来看更新。
一个三盲状态可分解为 12 条棱块与 8 个角块的独立「置换-朝向」结构。本工具会穷举所有循环配置,并预计算每种配置可对应的不同打乱数量,从而给出任意筛选条件下的精确概率。
考虑打乱 U2 L2 U' R D2 F' L D B' D R2 F2 L2 F2 U' R2 U B2 U2 B2 U。在缓冲位 UF(棱)与 UFR(角)下,其循环分解为:
棱:
$$\underbrace{(\mathrm{UF},\,\mathrm{BU},\,\mathrm{DL},\,\mathrm{FL})}_{o=0,\;\text{buffer}}\;\underbrace{(\mathrm{UR},\,\mathrm{RB})}_{o=0}\;\underbrace{(\mathrm{UL},\,\mathrm{LB})}_{o=0}\;\underbrace{(\mathrm{FR},\,\mathrm{BD})}_{o=1}\;\underbrace{(\mathrm{DR})}_{o=1}\;\underbrace{(\mathrm{DF})}_{o=0,\;\text{solved}}$$角:
$$\underbrace{(\mathrm{UFR},\,\mathrm{LDF},\,\mathrm{LUB},\,\mathrm{BDR},\,\mathrm{DBL},\,\mathrm{RUB},\,\mathrm{RDF})}_{o=2,\;\text{buffer}}\;\underbrace{(\mathrm{UFL})}_{o=1}$$这里的 $o$ 是该循环的净朝向:$o = \bigl(\sum_{\text{cycle}} o_i\bigr) \bmod O$,其中棱块 $O=2$,角块 $O=3$。朝向取值为:$0$ = 正向,$1$ = 翻棱或顺时针翻角,$2$ = 逆时针翻角。当 三循环 的 $o=0$ 时,朝向正确,可用一个三循环公式解决。全局约束 $\sum_{\text{all}} o_i \equiv 0\pmod{O}$ 始终成立。
循环配置由缓冲循环 $(p_0, o_0)$ 与一组小循环类型 $(p_j, o_j)*r_j$ 描述,其中 $p_j$ 为循环长度,$o_j$ 为净朝向,$r_j$ 为该类型循环个数。对上面的打乱:
| 类型 | 缓冲 $(p_0,o_0)$ | 小循环类型 $(p_j,o_j)*r_j$ |
|---|---|---|
| 棱 | $(4,0)$ | $(2,0)*2 + (2,1) + (1,1) + (1,0)$ |
| 角 | $(7,2)$ | $(1,1)$ |
对该打乱(棱块 $P=12,\,O=2$;角块 $P=8,\,O=3$):
$$\operatorname{count}_{\mathrm{edges}} = \frac{11!\cdot 2^{12-1-5}}{2^2\cdot2!\;\cdot\;2^1} = \frac{39{,}916{,}800\cdot 64}{16} = 159{,}667{,}200$$ $$\operatorname{count}_{\mathrm{corners}} = 7!\cdot 3^{8-1-1} = 5040\cdot 729 = 3{,}674{,}160$$任何有效的三盲打乱,其棱与角的置换奇偶必然一致,因此筛一个就等于同时筛两者。由于奇偶是顶层筛选项,配置会按奇偶拆成两个独立加权池:偶池与奇池;两者各自维护按打乱计数加权的 CDF。
生成打乱时:若两种奇偶都开启,则按总权重比例先选池(保证联合分布仍与未筛选分布一致);再从该池的 CDF 中抽取一个配置;随后随机实例化与该配置匹配的置换与朝向赋值;最后用 min2phase.js 还原得到打乱。
全浮动记号:(X:)YZ 表示一个以 X 为浮动缓冲、循环 Y 和 Z 两块的浮动公式。配对采用贪心策略,在极少配置下可能并非最优。该执行仅以匹配公式数为目标,不等于推荐的实际解法。
| 棱块 | 角块 | |
|---|---|---|
| 奇偶 | ||
| 小循环 | ||
| 翻色 | ||
| 公式(基础) | ||
| 公式(仅浮动纯三循环) | ||
| 公式(全浮动) | ||
| 公式(全浮动奇偶) | ||
| 计数 |
如果有任何地方对不上,请于GitHub反馈 issue。
▲ 收起在缓冲位 UF(棱,$P=12$, $O=2$)与 UFR(角,$P=8$, $O=3$)下,对全部 $980{,}995{,}276{,}800$ 种棱状态与 $88{,}179{,}840$ 种角状态给出精确打乱计数。选择技巧组合可查看对应的公式计数分布。
技巧等级(单缓冲 3-style):
与 Forsthofer & Hiesl (2021) 的对照。本页假设单缓冲完全处理奇偶,因此各类别下的公式数都低于他们采用固定对 weak swap 的结果。他们的奇偶约定「UR–UF pseudo swap」即固定借位法在优先列表长度为 1 时的特例(对应第 1 行)。对只掌握固定一对棱的盲拧选手,预计大约会多 0.5 个公式。但实情颇为微妙:掌握 UF-UR 对之后,UF-LU 或 UF-RB 对基本算是免费掌握,因为它们只差一次 S 层 setup。
在可使用任意浮动 三循环 的前提下,任何非缓冲循环都可按三阶段系统归约:
对每个满足 $p \ge 3$ 的非缓冲循环,应用 $\lfloor(p-1)/2\rfloor$ 次浮动 3-cycle,每步将长度缩短 2。通过合适选取循环可保持朝向 $o$ 不变。阶段 1 后,非缓冲循环仅剩 $(2,o)$ 与 $(1,o)$:
记阶段 1 后计数为 $r_{20},\,r_{21},\,r_{11}$。按以下顺序进行归约,每次配对耗 2 个浮动公式:
阶段 2 结束后,最多剩余一个 2-cycle:$R = r_{20} + r_{21} \le 1$。每个贡献 $1.5$ 个公式。
记阶段 1 后计数为 $r_{20},\,r_{21},\,r_{22},\,r_{11},\,r_{12}$。按以下顺序进行归约,每次配对耗 2 个浮动公式:
阶段 2 结束后,最多剩余一个 2-cycle:$R = r_{20} + r_{21} + r_{22} \le 1$。每个贡献 $1.5$ 个公式。(同类配对的记账桶——计入 $r_{11}$ 还是 $r_{12}$——不会影响最终公式数,因为阶段 3 的翻角公式对 $r_{11}$ 与 $r_{12}$ 对称。)
棱块 2 翻棱和 4 翻棱;角块 2 翻角和 3 翻角,各计为 1 个公式。
总计:$\text{twist} + 1.5\,R + (p_0-1)/2$。实现时全部以 $2\times$ 整数形式计算,避免浮点精度误差,最后再除以 2。
注意:上述归约使用固定的贪心配对顺序,以求简洁。某些配置下,不同的配对策略可能得到更少的公式数,因此此处统计结果应视为真实最优的上界。
当奇偶为奇且存在残余 $(2,0)$ 时,可将其吸收到缓冲循环末尾的奇偶对换中,使其成本由 $1.5$ 降到 $0.5$ 个公式,净省 1。残余 $(2,1)$ 或 $(2,2)$ 无法被干净地吸收,成本仍为 $1.5$,奇偶不会带来节省。
▲ 收起| 公式 | 计数 | 概率 | 累积 |
|---|
均值:,标准差:
| 公式 | 计数 | 概率 | 累积 |
|---|
均值:,标准差:
| 公式 | 计数 | 概率 | 累积 |
|---|
均值:,标准差:
按技巧等级统计的平均公式数(在所有有效打乱状态上计算):
| 技巧等级 | 棱块均值 | 节省 | 角块均值 | 节省 | 总均值 | 节省 |
|---|---|---|---|---|---|---|
| 基础 | ||||||
| 仅浮动纯三循环 | ||||||
| 全浮动 | ||||||
| 全浮动奇偶 |
你真的会想背 2768 个全浮动三循环公式,只为了平均每把少 个公式;再多背 11088 个全浮动奇偶公式,也只再平均每把少 个公式吗?这些都只是理论上界,还没考虑人类实际能力。人生苦短,别背了~
当然我没有劝退浮动,我自己就喜欢不用新公式即兴浮动,只是想说背那么多新公式要考虑代价。
每把节省公式数的分布(相对基础):
| 节省 | 仅浮动纯三循环 | 全浮动 | 全浮动奇偶 |
|---|
| 节省 | 仅浮动纯三循环 | 全浮动 | 全浮动奇偶 |
|---|
| 节省 | 仅浮动纯三循环 | 全浮动 | 全浮动奇偶 |
|---|
三盲打乱为奇偶为奇时,执行里必须塞进一个 2-swap(奇偶公式)。固定借位法不要求记下所有可能的奇偶配对:在 11 个非缓冲棱位上预设一个固定优先顺序,记忆时按顺序扫描,第一个可用的位置就是奇偶交换目标。索引越靠前,落进你已掌握的少数配对里的概率就越高。
奇偶为偶的打乱也可以套用这个流程,没有副作用:最坏情况下选出的槽位恰好就是循环本来就要收尾的位置,公式数不变。(这点和固定 weak swap 不同——后者无条件套用可能会增加一条公式。)
另一个小好处:选中的字母会被推迟到末尾的奇偶交换处理,所以一旦认出了应该选哪个槽位,记忆时就可以略过这个字母——比固定 weak swap 总要把 UR 字母念出来要省一点。
硬编码优先顺序:AGEDPITXKQYN
MWP = Mid-Way Parity(中途奇偶):当某个优先字母正好落在缓冲循环内的偶数位(且朝向匹配)时,将该字母就地标作奇偶交换,不再推迟到末尾。
在 CPS 中常见地集成翻棱插入(把一个非缓冲翻棱并入奇偶交换),不过本演示暂未展示。
演示仅限奇偶为奇且原位翻转棱块数 ≤ 1 的情形。多翻转(flip > 1)情况渲染较复杂,后续如有需要再补充。
另外,此演示采用保守的「将槽位字母推迟到末尾」写法。还有一种更广义的写法——把奇偶交换放在执行流中间,使其落在本演示视为不可用的槽位上,但这要求你在执行前就知道是奇偶为奇的情况,因此只有在先记角后记棱时才实用。先记棱 + 棱 CPS 只能用这里的保守写法。
小提示:此卡片暂未把浮动归约纳入考虑。浮动与 CPS 的耦合相当微妙,目前关注的人不多——如果有更多盲拧选手感兴趣,再来打磨这块。
当三盲打乱为奇偶为奇时,执行中必须并入一个 2-swap(奇偶公式)。固定借位法通过预先设定 11 个非缓冲棱位的固定优先顺序(例如先 UR,再 UB、UL……)来处理奇偶。记忆时按顺序检查这些位置,直到找到一个可用位置作为与缓冲交换的目标。
对缓冲 UF,位置 X 在满足以下任一条件时可作为交换目标:
反之,X 在以下情况不可用:
这两类情况之间是一一对应:交换 UF 与 X 的实体块后,每个可用案例都对应一个不可用案例,反之亦然。因此无论奇偶如何,首选位置(索引 #1)可用概率都恰为 50%。当缓冲循环末位存在($p_0 > 1$)时,其朝向两种可能等概率,对两侧各贡献一半。
形式化地,若某循环配置的缓冲循环长度为 $p_0$,小循环中原地还原棱块数为 $f$:
对 $h$ 做一次二项分支后,得到 $a'$ 个可用位与 $n' = 11 - a'$ 个不可用位,并在 11 个优先槽中均匀分布。首个可用槽位出现在索引 $k$ 的概率为:
$$P(k \mid a', n') \;=\; \frac{a' \cdot n'^{\underline{k-1}}}{11^{\underline{k}}}$$其中 $x^{\underline{m}} = x(x-1)\cdots(x-m+1)$ 为下降阶乘。表中 “—” 行汇总了 $a' = 0$(不存在可用目标)的配置。
| 索引 | 计数 | 概率 | 累积 |
|---|
索引 #12–#22 表示无可用借位位置(无棱小循环且停在错朝向棱块)的情况,均匀分摊以让曲线连续。
同样的流程,缓冲位 UFR,覆盖 7 个非缓冲角位。缓冲循环末位的可用概率为 $\tfrac{1}{3}$(棱为 $\tfrac{1}{2}$),因为角块有三种朝向。
| 索引 | 计数 | 概率 | 累积 |
|---|
索引 #8–#21 表示无可用借位位置的情况,均匀分摊到 14 个槽位以让曲线连续。
| 小循环数 | 计数 | 概率 | 累积 |
|---|
均值:,标准差:
| 小循环数 | 计数 | 概率 | 累积 |
|---|
均值:,标准差:
| 数量 | 计数 | 概率 | 累积 |
|---|
均值:,标准差:
由朝向对称性可知,原地还原棱块数(不含缓冲)服从同一分布。
| 数量 | 计数 | 概率 | 累积 |
|---|
均值:,标准差:
触发 4-翻棱或 3-翻角公式的概率。4-翻棱:open1>=3。3-翻角:cwTwist>=3 || ccwTwist>=3 || cwTwist==2 && ccwTwist==0 || ccwTwist==2 && cwTwist==0.
| 类型 | 计数 | 概率 |
|---|---|---|
| 4-翻棱 | ||
| 3-翻角 |
LTCT(Last Target Corner Twist)将最后一个角目标的处理与两角翻转合并为一个公式,可节省 1 个翻角公式。要求奇偶为奇,且至少有一个非缓冲翻角(open1>=1)。
T2C(Twisted 2 Corners)用于缓冲角已翻且另外两角互换时,把交换与缓冲解翻合并为一个公式来处理最后角目标。要求奇偶为奇,且至少存在一个错朝向小循环 2-cycle(open2>=1)。
注:实际中多数 BLD 选手只专精固定棱对(如 UF-UR)下的 LTCT 或 T2C,因此真正可用的情况会更少;在固定借位法下,通常约为上表的一半。
| 技巧 | 计数 | 概率 |
|---|---|---|
| LTCT | ||
| T2C |
任意操作序列重复足够多次后都将回到初始状态。其阶即所需重复次数。下表给出每个阶对应的不同魔方状态(打乱)数量。
| 阶 | 计数 |
|---|
| 公式 | 计数 | 概率 | 累积 |
|---|
均值:,标准差:
翼棱奇偶计为 1 个公式。
按技巧等级统计的平均翼棱公式数(在所有 4x4x4 翼棱状态上计算):
| 技巧等级 | 均值 | 节省 |
|---|---|---|
| 基础 | ||
| 仅浮动纯三循环 | ||
| 全浮动 |
每把节省公式数的分布(相对基础):
| 节省 | 仅浮动纯三循环 | 全浮动 |
|---|
| 小循环数 | 计数 | 概率 | 累积 |
|---|
均值:,标准差:
| 数量 | 计数 | 概率 | 累积 |
|---|
均值:,标准差:
| 数量 | 计数 | 概率 | 累积 |
|---|
均值:,标准差:
| 数量 | 计数 | 概率 | 累积 |
|---|
均值:,标准差:
| 数量 | 计数 | 概率 | 累积 |
|---|
均值:,标准差:
本页所有统计都可独立验证。克隆仓库后用 Node.js 运行:
git clone https://github.com/helloluxi/bld-scr.git
cd bld-scr
node src/reproduction.js
需要 Node.js ≥ 14(支持 BigInt)。