【发布时间】:2017-01-01 01:19:43
【问题描述】:
我想以最快的方式解决一个数学问题。 我有一组介于 1 到 n 之间的自然数,例如 {1,2,3,4,n=5},我想计算如下公式:
s = 1*2*3*4+1*2*3*5+1*2*4*5+1*3*4*5+2*3*4*5
如您所见,和中的每个元素都是集合中 n-1 个数字的乘积。例如,在 (1*2*3*4) 中,5 被排除在外,在 (1*2*3*5) 中,4 被排除在外。我知道有些乘法是重复的,例如 (1*2) 在 3 次乘法中重复。我怎样才能用最少的乘法来解决这个问题。
抱歉英语不好。 谢谢。
【问题讨论】:
-
这是一个编程问题吗?你试过什么?除法是算作乘法还是以其他方式? (我能想到几种使用一个或多个除法或倒数的方法。)那么加法呢?每个乘法都可以用多个加法代替,这样就不用乘法了。
-
我不想使用除法。只有乘法和求和。这是我想要解决的更大问题的一部分。我尝试在树中构造数字,但找不到可以使用重复乘法的良好结构。
-
您还没有回答关于用加法替换所有乘法的问题。另外,您的目标是尽量减少时间(如您在第一句话中所说)或乘法(如您在几乎最后一句话中所说)或其他什么?
-
我想在计算机上运行一个解决这个问题的代码。所以我想减少乘法并使用总和的数量,但我不认为用总和替换所有乘法是一种更快的方法。因为我认为这样我们需要更多的 CPU 周期来解决它。
-
我真的很想这样做,但我需要 15 个或更多我没有的声望。谢谢大家帮助我。
标签: math numbers combinations discrete-mathematics