徐汇区中山西路2331号 17492213794 z6com@j9.com

集团新闻

六个不同图标的排列怎样变成可还原的编号:独立演算第10例

2026-11-08

关卡中六个不同图标有许多排列。若想给每种排列一个连续且可还原的编号,可以按字母顺序比较排列,并记录每一步跳过了多少个较小的可用图标。

图标为A至F,每个恰好出现一次,编号从零开始。第一个位置的贡献是它在剩余有序图标中的下标乘五的阶乘,后续依次乘四、三、二、一、零的阶乘;把所有贡献相加。

这一例的完整输入

八个独立编号为[475, 669, 679, 580, 21, 249, 4, 85];A小于B,依此到F。

逐项计算记录

编号 | 还原排列 | 六个剩余列表下标 | 六项贡献 475 | DFEACB | [3, 4, 3, 0, 1, 0] | [360, 96, 18, 0, 1, 0] 669 | FCEBDA | [5, 2, 3, 1, 1, 0] | [600, 48, 18, 2, 1, 0] 679 | FDBAEC | [5, 3, 1, 0, 1, 0] | [600, 72, 6, 0, 1, 0] 580 | EFADBC | [4, 4, 0, 2, 0, 0] | [480, 96, 0, 4, 0, 0] 21 | ABFDEC | [0, 0, 3, 1, 1, 0] | [0, 0, 18, 2, 1, 0] 249 | CADEFB | [2, 0, 1, 1, 1, 0] | [240, 0, 6, 2, 1, 0] 4 | ABCFDE | [0, 0, 0, 2, 0, 0] | [0, 0, 0, 4, 0, 0] 85 | AEDBFC | [0, 3, 2, 0, 1, 0] | [0, 72, 12, 0, 1, 0]

读表时先把输入与计算后的结果分开。空值表示这一步没有适用对象或没有可用结果,不应自动换成零。编号只负责识别本例中的元素,同一个数字出现在不同字段时,要先确认它代表位置、对象还是数值。

怎样复核和使用

还原时把编号按相应阶乘依次除出下标,从剩余列表取走该图标,余数继续向后处理。六位排列共有720种,合法编号为零至719,解码后的图标不能重复。

此方法依赖元素全部不同,不能直接拿来给包含重复图标的队列编号。它也是一种确定的排序编号,并不自动生成均匀随机排列;想随机抽取还要单独说明抽样规则。

可以先遮住记录表,只按上述规则重算前两步,再选择一个边界条件重新试算。若结果不一致,应逐项检查输入顺序、端点是否包含以及状态在哪一步更新;不要只看最终合计相同就认为中间处理也完全正确。