在一个虚拟货币挖矿系统中,每个矿工拥有一定的算力值n(范围在1 到1018之间)。系统需要为每个矿工分配一个算力档位,这个档位必须是小于等于矿工当前算力n的最大“稳定算力档”,并且这个档位的算力值各个数位之和必须是一个质数(质数又称素数。一个大于1的自然数,除了1和它自身外,不能被其他自然数整除的数叫做质数)。“稳定算力档”定义为从左到右每一位数字都不小于前一位数字,例如123、111、399都是符合要求的稳定算力档,像121、897
这种则不符合要求。合理分配算力档位有助于提高挖矿效率和稳定性。
s
。i
位,我们在合法范围内(若受上界约束则不超过 s[i]
,否则不超过 9;且不小于前一位已定的数字)的候选数字中,从大到小尝试最优选择。d
之后,根据当前已选的数字和剩余位置,可算出可能的最小/最大剩余位数和: