我需要将一个数字分解为随机排列的 2 和 3 序列。
例如:
- 5 可以是 3,2 或 2,3
- 6 可以是 3,3
我目前正在使用 ActionScript 3 中的循环来执行此操作,但一直在研究使用某种数学公式来节省几行代码的可能性。在数学方面我有点笨拙,但我还没有找到合适的东西。
有谁知道这样的事情是否存在?
谢谢,
嘎嘎
最佳答案
假设您尝试分解为 2a+3b
的数字是 n
。拆分:
n = 6*(n/6-1) + 6+(n%6)
其中 %
是模数,/
是整数除法。第一部分可以被 6 整除,因此可以写成 2+2+2 或 3+3 的序列。对于第二部分,使用某种表格进行选择。因为它总是在 6 到 11 之间,所以所有的数字都可以。
6+(n%6) | sum
--------+----
6 | 3+3
7 | 2+2+3
8 | 2+3+3
9 | 3+3+3
10 | 3+3+2+2
11 | 3+3+3+2
这样做的好处包括您可以改变 3 和 2 的数量,并且您不必使用任何类型的低效循环。
关于actionscript-3 - 找到 2's and 3' s 使得总和是给定的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5348933/