按下列要求生成一些长度为 10 位的十六进制数。
1 、每一位的范围:根据给定的数位的值限制,每一位的取值范围应该是 1 到该位的最大值。 即:每个位最小为 1 ,且有一个最大数的限制,比如个位限制最大为 4 ,十位限制最大为 5 。用一串数字表示从低位往高位的限制最大值,依次为 4 ,5 ,5 ,5 ,5 ,5 ,5 ,5 ,5 ,7 。
2 、重复元素比例:生成结果中任意两个数对应位的重复元素不超过 30%。
3 、多样性:生成的所有数,相同位上的数字尽可能多样。即个位上应该尽可能均匀的出现 1 到 4 ,避免仅使用 1 到 3 ,未使用 4 的情况。
如何求解出可生成满足上述条件的数字总个数,并枚举出一个符合条件的组合。
如果要求上的 10 位 16 进制变为动态的,比如 n 位 m 进制,每位限制最大值依次为 a1,a2,a3,...,允许的重复率为 p%,如何给出一个通用的计算方案。