2025个数码,求最小的45位数
用 A 前 2025 个数码,恰好可以组成 45 个 45 位数,当 45 个数的乘积最大时,最小的 45 位数 = ________ 。A = {1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5, 2, 6, 2, 7, 2, 8, 2, 9, 3, 0, 3, ...} 看不懂,你应该先弄一个简单的例子说明一下 很简单的策略,先选择最大45个数码,安排在所有数的最高位。
然后每轮安排一位,为此同样选择余下最大数码,对于前面已经安排好的数,从小到大添加即可。
比如我们又999999987654221这几个数字,分成3个数,乘积最大的划分。
先安排最高位得到
9
9
9
其次次高,得到987654221可用
99
99
99
安排第三位时,还有数字,而前面的数字都相同,任意顺序安排,得到
999
998
997
余下654221
下一轮,将上面数字从小到大排列,而使用数字从大到小,得到
9976
9985
9994
最后在添加221得到
99762
99852
99941
乘积比其它方案都大 nyy 发表于 2025-8-7 09:24
看不懂,你应该先弄一个简单的例子说明一下
简单的题目。45个数(一开始看作有45个0), 重复相同的操作。
每次操作都是这样: 在A里面找一个最大的数码,填在45个数里面最小的那个数后面。
重复操作2025次。得到45个45位数, 把最小的那个45位数找出来就可以了。
我就是不知道怎么编程。对你来说, 肯定行!!!谢谢!!! 虽然有方法,手工计算还是有难度。
A = {1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 0, 1, 1, 1, 2, 1, 3, 1, 4, 1, 5, 1, 6, 1, 7, 1, 8, 1, 9, 2, 0, 2, 1, 2, 2, 2, 3, 2, 4, 2, 5, 2, 6, 2, 7, 2, 8, 2, 9, 3, 0, 3, ...}
R(1)=1,——A(1)个数码, 恰好分成1个1位数, 当1个数的积最大时,最小1位数=R(1)。
R(2)=32, ——A(4)个数码, 恰好分成2个2位数, 当2个数的积最大时,最小2位数=R(2)。
R(3)=763, ——A(9)个数码, 恰好分成3个3位数, 当3个数的积最大时,最小3位数=R(3)。
R(4)=6642, ——A(16)个数码, 恰好分成4个4位数, 当4个数的积最大时,最小4位数=R(4)。
R(5)=66311, ——A(25)个数码, 恰好分成5个5位数, 当5个数的积最大时,最小5位数=R(5)。
R(6)=763211, ——A(36)个数码, 恰好分成6个6位数, 当6个数的积最大时,最小6位数=R(6)。
R(7)=7752211,
R(8)=76533211,
R(9)=775433211,
4——2
3, 4,
2, 1,
9——3
7, 8, 9,
6, 5, 4,
3, 2, 1,
16——4
6, 7, 8, 9,
6, 5, 5, 4,
4, 3, 3, 2,
2, 1, 1, 0,
25——5
6, 7, 7, 8, 9,
6, 5, 5, 4, 4,
3, 2, 3, 2, 1,
1, 1, 1, 1, 1,
1, 1, 1, 1, 0,
36——6
7, 7, 8, 8, 9, 9,
6, 6, 5, 5, 4, 4,
3, 3, 2, 2, 2, 2,
2, 2, 1, 2, 1, 1,
1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 0, 0,
49——7
7, 8, 8, 8, 9, 9, 9,
7, 6, 6, 7, 5, 5, 6,
5, 4, 4, 4, 3, 3, 3,
2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 1,
1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 0, 0,
64——8
7, 7, 8, 8, 8, 9, 9, 9,
6, 7, 6, 6, 6, 5, 5, 5,
5, 4, 4, 4, 4, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3,
3, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 1, 2, 2,
1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 0, 0, 0,
81——9
7, 8, 8, 8, 8, 9, 9, 9, 9,
7, 6, 6, 7, 7, 5, 5, 6, 6,
5, 5, 5, 4, 4, 4, 4, 4, 4,
4, 4, 4, 4, 4, 3, 3, 3, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3,
3, 2, 3, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1,
1, 1, 1, 1, 1, 0, 0, 0, 0, A={1,|2, 3, 4,|5, 6, 7, 8, 9,|1, 0, 1, 1, 1, 2, 1,|3, 1, 4, 1, 5, 1, 6, 1, 7,|1, 8, 1, 9, 2, 0, 2, 1, 2, 2, 2,|3, 2, 4, 2, 5, 2, 6, 2, 7, 2, 8, 2, 9,|3, 0, 3, 1, 3, 2, 3, 3, 3, 4, 3, 5, 3, 6, 3,|7, 3, 8, 3, 9, 4, 0, 4, 1, 4, 2, 4, 3, 4, 4, 4, 5,|
4, 6, 4, 7, 4, 8, 4, 9, 5, 0, 5, 1, 5, 2, 5, 3, 5, 4, 5,|5, 5, 6, 5, 7, 5, 8, 5, 9, 6, 0, 6, 1, 6, 2, 6, 3, 6, 4, 6, 5,|6, 6, 6, 7, 6, 8, 6, 9, 7, 0, 7, 1, 7, 2, 7, 3, 7, 4, 7, 5, 7, 6, 7,|7, 7, 8, 7, 9, 8, 0, 8, 1, 8, 2, 8, 3, 8, 4, 8, 5, 8, 6, 8, 7, 8, 8, 8, 9,|}
这样——按从小到大,从上到下,从右到左排列(除了第1列)。小的数码尽可能不动。——还是简单不了。
4——2
4, 1,
3, 2,
9——3
9, 4, 1,
8, 5, 2,
7, 6, 3,
16——4
9, 2, 1, 0,
8, 3, 1, 1,
7, 4, 1, 1,
6, 5, 2, 1,
25——5
9, 4, 1, 1, 0,
8, 4, 2, 1, 1,
7, 5, 2, 1, 1,
7, 5, 3, 1, 1,
6, 6, 3, 1, 1,
36——6
9, 4, 2, 1, 1, 0,
9, 4, 2, 1, 1, 0,
8, 5, 2, 1, 1, 1,
8, 5, 2, 2, 1, 1,
7, 6, 3, 2, 1, 1,
7, 6, 3, 2, 1, 1,
49——7
9, 6, 3, 2, 1, 1, 0,
9, 5, 3, 2, 2, 1, 0,
9, 5, 3, 2, 2, 1, 1,
8, 6, 4, 2, 2, 1, 1,
8, 6, 4, 2, 2, 1, 1,
8, 7, 4, 2, 2, 1, 1,
7, 7, 5, 2, 2, 1, 1,
64——8
9, 5, 3, 3, 2, 1, 1, 0,
9, 5, 3, 3, 2, 2, 1, 0,
9, 5, 3, 3, 2, 2, 1, 0,
8, 6, 4, 3, 2, 2, 1, 1,
8, 6, 4, 3, 2, 2, 1, 1,
8, 6, 4, 3, 2, 2, 1, 1,
7, 7, 4, 3, 2, 2, 1, 1,
7, 6, 5, 3, 3, 2, 1, 1,
81——9
9, 5, 4, 3, 3, 2, 1, 1, 0,
9, 5, 4, 3, 3, 2, 2, 1, 0,
9, 6, 4, 3, 3, 2, 2, 1, 0,
9, 6, 4, 3, 3, 2, 2, 1, 0,
8, 7, 4, 4, 3, 2, 2, 1, 1,
8, 7, 4, 4, 3, 2, 2, 1, 1,
8, 6, 5, 4, 3, 2, 2, 1, 1,
8, 6, 5, 4, 3, 3, 2, 1, 1,
7, 7, 5, 4, 3, 3, 2, 1, 1, 999988777666666555554444433333322222111110000,
999988777666666555554444433333322222111110000,
999988777666666555554444433333322222111110000,
999988777666666555554444433333322222111110000,
999988777666666555554444433333322222111110000,
999988777666666555554444433333322222111110000,
999888877766666555554444433333322222111111000,
999888877766666555554444433333322222111111000,
999888877766666555554444433333322222111111000,
999888877666666555554444443333322222111111000,
999888877666666555554444443333322222111111000,
999888877666666555554444443333322222111111000,
999888877666666555554444443333322222111111000,
999888877666666555554444443333322222111111000,
999888877666666555554444443333322222111111000,
999888877666666555554444433333322222111111000,
999888877666666555554444433333322222111111000,
999888877666666555554444433333322222111111000,
999888777766666655554444443333322222111111000,
999888777766666555555444443333322222211111000,
999888777766666555555444443333322222211111000,
999888777766666555555444443333322222211111000,
999888777766666555555444443333322222211111000,
999888777766666555555444443333322222211111000,
999888777766666555555444443333322222211111000,
999888777766666555555444443333322222211111000,
999888777766666555555444443333322222211111000,
999888777766666555555444443333322222211111000,
999888777766666555555444443333322222211111000,
999888777766666555555444443333322222211111000,
999888777766666555555444443333322222111111000,
999888777766666555555444443333322222111111000,
999888777766666555555444443333322222111111000,
999888777766666555555444443333322222111111000,
999888777766666555555444443333322222111111000,
999888777766666555555444443333322222111111000,
999888777766666555554444443333332222211111000,
999888777766666555554444443333332222211111000,
999888777766666555554444443333332222211111000,
999888777766666555554444443333332222211111000,
999888777766666555554444443333322222211111000,
999888777766666555554444443333322222211111000,
999888777766666555554444443333322222211111000,
999888777766666555554444443333322222211111000,
999888777766666555554444443333322222211111000,
45个45位数——这是手工出来的——电脑应该怎样做?谢谢!!! 电脑可以这样出来!!!
A = Reverse@Sort@First, 10, 45^2]]; s = {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0};
For; For][]; d[] = Max; s[] = s[]*10 + Max; A = DeleteCases, 1, 1];];] Print
补充内容 (2025-8-15 19:21):
代码就是根据4#出来的——45个数——45个0。 用F前n^2个数码,恰好可以组成n个n位数,当n个数的乘积最大时,求最小的 n 位数=R(n)。
F = {1, 1, 2, 3, 5, 8, 1, 3, 2, 1, 3, 4, 5, 5, 8, 9, 1, 4, 4, 2, 3, 3, 3, 7, 7, 6, 1, 0, 9, 8, 7, 1, 5, 9, 7, 2, 5, 8, 4, 4, 1, 8, 1, 6, 7, 6, 5, 1, 0, 9, 4, 6, 1, 7, 7, 1, 1, 2, 8, 6, 5, 7, 4, 6, 3, 6, 8, 7, 5, 0, 2, 5, 1, 2, 1, 3, 9, 3, 1, 9, 6,
4, 1, 8, 3, 1, 7, 8, 1, 1, 5, 1, 4, 2, 2, 9, 8, 3, 2, 0, 4, 0, 1, 3, 4, 6, 2, 6, 9, 2, 1, 7, 8, 3, 0, 9, 3, 5, 2, 4, 5, 7, 8, 5, 7, 0, 2, 8, 8, 7, 9, 2, 2, 7, 4, 6, 5, 1, 4, 9, 3, 0, 3, 5, 2, 2, 4, 1, 5, 7, 8, 1, 7, 3, 9, 0, 8, 8, 1, 6, 9, 6, 3, 2, 4, 5, 9, 8, 6}
R(1)=1,
1,
R(2)=21,
3, 1,
2, 1,
R(3)=331,
8, 2, 1,
5, 2, 1,
3, 3, 1,
R(4)=5531,
9, 3, 2, 1,
8, 5, 2, 1,
8, 4, 3, 1,
5, 5, 3, 1,
R(5)=75331,
9, 4, 3, 2, 1,
8, 5, 3, 2, 1,
8, 4, 3, 2, 1,
7, 5, 4, 3, 1,
7, 5, 3, 3, 1,
R(6)=875321,
9, 7, 4, 3, 1, 0,
9, 6, 4, 3, 1, 1,
9, 5, 4, 3, 2, 1,
8, 7, 5, 3, 2, 1,
8, 7, 5, 3, 2, 1,
8, 7, 5, 3, 2, 1,
R(7)=8754321,
9, 7, 5, 4, 2, 1, 0,
9, 7, 5, 3, 2, 1, 0,
9, 6, 5, 4, 3, 1, 1,
8, 8, 5, 4, 3, 1, 1,
8, 7, 6, 5, 3, 1, 1,
8, 7, 6, 4, 3, 2, 1,
8, 7, 5, 4, 3, 2, 1,
R(8)=87754321,
9, 7, 6, 5, 4, 2, 1, 0,
9, 7, 6, 5, 3, 2, 1, 1,
9, 7, 6, 5, 3, 2, 1, 0,
9, 7, 6, 4, 4, 2, 1, 1,
8, 8, 6, 5, 4, 3, 1, 1,
8, 8, 6, 5, 4, 3, 1, 1,
8, 7, 7, 5, 5, 3, 1, 1,
8, 7, 7, 5, 4, 3, 2, 1,
R(9)=887653211,
9, 8, 6, 5, 4, 3, 1, 1, 0,
9, 7, 7, 5, 4, 3, 2, 1, 0,
9, 7, 6, 5, 5, 3, 2, 1, 0,
9, 7, 6, 5, 4, 3, 2, 1, 1,
9, 7, 6, 5, 4, 3, 2, 1, 1,
9, 7, 6, 5, 4, 3, 2, 1, 1,
8, 8, 7, 6, 5, 4, 2, 1, 1,
8, 8, 7, 6, 5, 3, 3, 1, 1,
8, 8, 7, 6, 5, 3, 2, 1, 1, 用60个数码,恰好可以组成10个数, 其中有4个5位数,3个6位数,2个7位数,1个8位数,当10个数的乘积最大时,最小的8位数 = ________ 。
60个数码 = {3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 4, 6, 2, 6, 4, 3, 3, 8, 3, 2, 7, 9, 5, 0, 2, 8, 8, 4, 1, 9, 7, 1, 6, 9, 3, 9, 9, 3, 7, 5, 1, 0, 5, 8, 2, 0, 9, 7, 4, 9, 4}