| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1314 人关注过本帖
标题:[讨论]一个数分解的乘积问题。
只看楼主 加入收藏
tcnf2004
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-10-12
收藏
 问题点数:0 回复次数:7 
[讨论]一个数分解的乘积问题。
一个任意正整数N,把它分解为任意个整数,这些整数和等于N,请问如何分解,使这些整数的乘积最大?可以在数学,算法上讨论,不用拿出源代码,不过自己可以编程出来看看是否通过.
搜索更多相关主题的帖子: 乘积 分解 
2007-10-15 22:12
tcnf2004
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-10-12
收藏
得分:0 
我和朋友想了一下,发现所有大于3的正整数,可以分解为:3*3*3……*[2(2个2或者1个2),3],这样分解组成的乘积最大,也就是保持最后一个数是2或者3,其他要都是3才可以乘积最大。这样编程序就好编了,还有其他方法也有同样的结论么?

[此贴子已经被作者于2007-10-15 22:56:18编辑过]



2007-10-15 22:48
tcnf2004
Rank: 1
等 级:新手上路
帖 子:17
专家分:0
注 册:2007-10-12
收藏
得分:0 
4=2*2
5=3*2
6=3*3
7=3*2*2
8=3*3*2
9=3^3
10=3*3*2*2
11=3^3*2
12=3^4
13=3^3*2*2
…………
24=3^8
…………

[此贴子已经被作者于2007-10-15 22:54:56编辑过]


2007-10-15 22:52
HJin
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:401
专家分:0
注 册:2007-6-9
收藏
得分:0 
consider writing N as a sum of 2's and 3's.

You can mathematically prove that by using 2 and 3's, you get the maximum product.

I am working on a system which has no Chinese input. Please don\'t blame me for typing English.
2007-10-16 00:27
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
直接DP,之前有人问过并有答案,在这版里

Fight  to win  or  die...
2007-10-16 12:35
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

1.一切大于1的数都可以用2,3的和来分解.

2.假设a=b+c,其中得到的b*c最大
同时,b,c也可以这样分解.(递归)

现在来证明用2,3分解得到的数最大
从4 (从4开始都是这样)分解当然是2,2,所有加数为4的都应该分解为2,2才可以得到最大.

反证:
假设任意一个数分解成若干数的和能得到最大的乘积(其中这些因子不包含3,2)
则 这些加数一定可以分解成2,3的组合(根据第一条),再根据第二条,既然可以分解成2,3使得得到的乘积是最大的
那就证明了因子不是2,3是错误的.
所以每个数要分解成2,3的组合才能得到最大.

具体怎么样的组合才可以得到最大那就是贪心.
仅当被分解的数不小于2,就用3分解.直到0.


倚天照海花无数,流水高山心自知。
2007-10-16 15:08
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 

k=num/3;
t=1;
if(num%3==1)
{
k--;
t++;
}
else if(num%3==0)
{
t--;
}

得到k个3 t个2


倚天照海花无数,流水高山心自知。
2007-10-16 15:13
HJin
Rank: 6Rank: 6
等 级:贵宾
威 望:27
帖 子:401
专家分:0
注 册:2007-6-9
收藏
得分:0 
no need of recursion or dp:

you only need to consider three cases:

n%3 == 0, 1, 2 // these determine how many 3's and how many 2's

then you can write a formula for the max-product.

I am working on a system which has no Chinese input. Please don\'t blame me for typing English.
2007-10-16 20:33
快速回复:[讨论]一个数分解的乘积问题。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014524 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved