当前位置: 技术问答>java相关
用一种计算机语言把这过程实现。
来源: 互联网 发布时间:2017-04-29
本文导语: 上次一家公司给我出了这样的一个问题: 假如你是一家瓷器供应商,客户在你那买盘子,一次性拿的盘子数目从1个到1000个不等,要求你拿出的盘子是事先放进箱子,包装好的。请问你的包装箱盘子数目的最优组合数...
上次一家公司给我出了这样的一个问题:
假如你是一家瓷器供应商,客户在你那买盘子,一次性拿的盘子数目从1个到1000个不等,要求你拿出的盘子是事先放进箱子,包装好的。请问你的包装箱盘子数目的最优组合数是多少?例如:1,22,44等(不是这个数列)
举个例子:我是客户去你那拿盘子,我要187个盘子,你不可能给我187个箱子吧;我要999个箱子,你不可能给我999个箱子吧!而是你事先已按最优的组合方式把盘子放进各个箱子中了,然后很方便的给了我。
用一种计算机语言把这过程实现。
假如你是一家瓷器供应商,客户在你那买盘子,一次性拿的盘子数目从1个到1000个不等,要求你拿出的盘子是事先放进箱子,包装好的。请问你的包装箱盘子数目的最优组合数是多少?例如:1,22,44等(不是这个数列)
举个例子:我是客户去你那拿盘子,我要187个盘子,你不可能给我187个箱子吧;我要999个箱子,你不可能给我999个箱子吧!而是你事先已按最优的组合方式把盘子放进各个箱子中了,然后很方便的给了我。
用一种计算机语言把这过程实现。
|
关键是最优组合的定义:设组合为g
1。能用g系列给客户所需要的数量;
2。在所有满足1的结果中,g系列数量最少
不知道还有没有别的。。
然后根据条件列出算法:
1〉对于一个数,他的和的计算方式有n种,最少的当然是一个数。但计算机如何判断?(先这么想)计算机得到一个数,计算她的所有加数,然后输出加数最少的一项。
2〉把1〉延伸到1000个,即判断1000个(1-1000)数字里面,能组成所有这1000个数的共同加数的数字并且最少。
其中第2项再继续延伸详细。
1。能用g系列给客户所需要的数量;
2。在所有满足1的结果中,g系列数量最少
不知道还有没有别的。。
然后根据条件列出算法:
1〉对于一个数,他的和的计算方式有n种,最少的当然是一个数。但计算机如何判断?(先这么想)计算机得到一个数,计算她的所有加数,然后输出加数最少的一项。
2〉把1〉延伸到1000个,即判断1000个(1-1000)数字里面,能组成所有这1000个数的共同加数的数字并且最少。
其中第2项再继续延伸详细。
|
可以考虑跟钱币方式差不多:
1
2
5
10
50
100
1
2
5
10
50
100
|
同意
|
应该是
1
2
4
8
16
这样的吧
1
2
4
8
16
这样的吧
|
标准答案呢
|
up
|
up
|
十个箱子,用二进制实现!