把9,15,28,30,34,55,7,85这八个数平均分成两组,使每组里四个数的乘积相等。

来源:百度知道 编辑:UC知道 时间:2024/06/15 04:53:08
怎么做
不会啦!
高手救命!

你要是学过概率的话就容易了,相信你是卡在算法上了,而不是程序语言。
从这8个数字中取出4个,有几种取法?用排列组合中的组合:共有(8*7*6*5)/(4*3*2*1)=70种取法。利用循环70次。每次取出的四个放一组,余下的四个放一组。对每种取法都进行前计算,判断是否相等。相等即结束程序。
这样编写出来适用性强,把上面的8个数字换掉还用这个程序也可以的!

把每个数拆分成素数的积,如9 = (3, 3), 30 = (2, 3, 5)。两边相同素数的个数相等时就结束了。你这道题把55换成5就对了。结果是:
(28, 9, 85, 5)--(34, 30, 15, 7)。过程是:
1. 3*3, 3*5, 2*2*7, 2*3*5, 2*17, 5, 7, 5*17
2. (2*2*7)--(2*3*5, 2*17)
3. (2*2*7, 3*3)--(2*3*5, 2*17, 3*5)
4. (2*2*7, 3*3, 5, 5*17)--(2*3*5, 2*17, 3*5)
5. (2*2*7, 3*3, 5, 5*17)--(2*3*5, 2*17, 3*5, 7)
方法是:从包含的最小素数开始,这个素数的个数肯定是偶数,把它们所在数分到两边。过程中可能需要调整本来已经放好的数,使后面的素数也能两边平等。

为什么只有55是11的倍数,这能分出来吗。。。。。。