王守恩
发表于 2025-8-20 16:04:21
太难了!简单一点。
1, 用30个数码,恰好可以组成10个数, 其中有4个2位数,3个3位数,2个4位数,1个5位数, 10个数的积最大 = ________ 。这10个数(从小到大)=___。
30个数码 ={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}
2, 用30个数码,恰好可以组成10个数, 其中有4个2位数,3个3位数,2个4位数,1个5位数, 10个数的积最大 = ________ 。这10个数(从小到大)=___。
30个数码 ={2, 7, 1, 8, 2, 8, 1, 8, 2, 8, 4, 5, 9, 0, 4, 5, 2, 3, 5, 3, 6, 0, 2, 8, 7, 4, 7, 1, 3, 5}
王守恩
发表于 2025-8-21 18:34:08
继续前进!在同等条件下这n(n+1)/2个数的乘积是最大的!!!
A={2, 7, 1, 8, 2, 8, 1, 8, 2, 8, 4, 5, 9, 0, 4, 5, 2, 3, 5, 3, 6, 0, 2, 8, 7, 4, 7, 1, 3, 5, 2, 6, 6, 2, 4, 9, 7, 7, 5, 7, 2, 4, 7, 0, 9, 3, 6, 9, 9, 9, 5, 9, 5, 7, 4, 9}
题目: 用A前n(n+1)(n+2)/6个数码, 恰好可以组成n(n+1)/2个数, 其中有n个1位数, (n-1)个2位数, (n-2)个3位数, (n-3)个4位数, ..., 3个(n-2)位数,2个(n-1)位数,1个n位数 = R(n)。譬如:
n=1, {2}, R(1)=2,
n=2, {8,7,21}, R(2)=21,
n=3, {8,8,8,81,72,221}, R(3)=221,
n=4, {9,8,8,8,82,72,53,531,521,4420}, R(4)=4420,
n=5, {9,8,8,8,8,82,73,73,72,642,641,632,5520,5421,54210}, R(5)=54210,
n=6, {9,9,9,9,9,9,94,94,85,85,85,842,842,763,763,7621,7621,7542,75420,75321,753200}, R(6)=753200,
n=7, {9,9,9,9,9,9,9,95,95,95,85,85,85,853,853,773,764,764,7642,7642,7642,7642,76421,76420,76321,763210,755320,7543200}, R(7)=7543200,
n=8, {9,9,9,9,9,9,9,9,95,95,95,95,95,95,86,853,853,853,853,853,853,7742,7732,7652,7652,7643,76431,76431,76431,76422,764220,764220,764220,7642200,7642110,76421100}, R(8)=76421100,
王守恩
发表于 2025-8-22 17:20:51
题1——用45个数码, 1,2,3,4,5,6,7,8,9各5个。组成9个数, 1,2,3,4,5,6,7,8,9位数各1个。当9个数的乘积最大时, 这9个数=____(从小到大)。
题2——用45个数码, 1,2,3,4,5,6,7,8,9各5个。组成9个数, 1,2,3,4,5,6,7,8,9位数各1个。当9个数的乘积最小时, 这9个数=____(从小到大)。
gxqcn
发表于 2025-8-22 17:36:36
如果每个数的位数一致,用 mathe 在 3# 的策略即可
如果要求的数列位数不一致,又该如何呢?我们可以将其转化为位数一致的情形:
[*]寻找目标数列中要求位数最长的那个,记录其位数 \(k\),乘以项数 \(n\) 得到总数码的位数 \(N_{new}= k * n\)
[*]原数码全部用绿色标记,位数为 \(N_{old}\),补充 \((N_{new}-N_{old})\) 个黄色数码“0”进入序列(用不同的颜色,以便与原数码中的“0”进行区分)
[*]用 mathe 策略填数字,并注意数列中,一旦出现满足当前最短数列长度时,后面只允许跟填黄色数码“0”
[*] 删除所有的黄色数码“0”,即得到所需的数列
王守恩
发表于 2025-8-22 17:59:06
去问"DeepSeek"——这样答复。
根据问题要求,使用45个数码(数字1到9各5个)组成9个数,其位数分别为1位、2位、3位、4位、5位、6位、7位、8位、9位各一个。
......
对于题1,当9个数的乘积最大时,这些数按从小到大排列为:
9, 99, 998, 8888, 77777, 666665, 5554444, 44333332, 222211111,
对于题2,当9个数的乘积最小时,这些数按从小到大排列为:
9, 99, 899, 8888, 77777, 566666, 4445555, 23333344, 111112222,
王守恩
发表于 2025-8-23 08:21:46
10个数码:1,2,3,4,5,6,7,8,9,0。分成n(n>1)个正整数。当n个正整数乘积最大时, n个正整数=____。
已深度思考——用时835秒
......
为了最大化10个数码(1,2,3,4,5,6,7,8,9,0)分成n个正整数的乘积,其中n>1,需将数码分成两个数字:一个数字包含0,另一个数字包含剩余数码。
通过计算不同分组的乘积,发现当数字为960和8754321时,乘积最大。乘积计算:960 × 8754321 = 8404148160。
gxqcn
发表于 2025-8-23 16:10:18
王守恩 发表于 2025-8-22 17:59
去问"DeepSeek"——这样答复。
根据问题要求,使用45个数码(数字1到9各5个)组成9个数,其位数分别为1位、 ...
关于第1题,你用DeepSeek得到的数列为:{ 9, 99, 998, 8888, 77777, 666665, 5554444, 44333332, 222211111 }
我用14#的策略,人工排列得到的数列为:{ 9, 97, 975, 9654, 96543, 885432, 8765322, 87643211, 876432111 }
上一排数列之积:22,423,730,776,425,408,127,232,114,167,844,336,092,911,360(共44位)
下一排数列之积:472,940,595,468,304,999,743,644,807,829,352,019,687,786,400(共45位)
再看第2题,你用DeepSeek得到的数列为:{ 9, 99, 899, 8888, 77777, 566666, 4445555, 23333344, 111112222 }
用类似14#策略,人工排列得到的数列为:{ 1, 12, 134, 1345, 13467, 235678, 2356788, 24567889, 245678999 }
上一排数列之积: 3,616,467,687,831,006,198,974,075,375,291,724,166,210,560(共43位)
下一排数列之积:97,646,037,973,144,395,075,318,619,664,156,191,680(共38位)
也就是说,人工智能给出的答案都不是最优的!!!
gxqcn
发表于 2025-8-23 17:03:20
其实此题,无论是要求积最大还是最小,其核心都可归结于一个简单朴素的公式:\}\]
即:当两数和为定值时,其乘积随两者之差变大而减小
因为乘法具有交换律和结合律,再反复利用上面的结论,即可得到如下策略:
[*]整数的乘积,高位比低位贡献更大,所以从高位到低位来确定,每次将数列中各数的位数增1即可,此乃策略一
[*]如果是要求积最大,就需要在现有数码中从大到小优选,否则反之,此乃策略二
[*]由策略二选择好新增的数码作为数列各数新增尾数,无论以什么顺序追加,此时数列里各数总和必为定值,
由\(\ref{※}\),若需积最大,只需它们之间差尽可能小,反之则需尽可能大,
即:将现有数列从小到大排列,在各数尾部添加策略二所选的数码,此乃策略三
[*]如果目标数列中各数位数不一致时,需要提前锁定,被锁定的数不再其后新增尾数;
此时从策略二中,选择的数码数目将需要删减,并以虚拟的数码“0”补全,
然后执行策略三,追加虚拟数码“0”的数,删除当前新增的“0”并锁定之,此乃策略四
策略四中,之所以将虚拟数码看作“0”,是因为它本身为最小,可以继续用策略三;同时,它对积的贡献,只是在后面增减一个“0”而已
王守恩
发表于 2025-8-27 09:47:53
题目1。A = {1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,......},
用A前n^2个数码, 恰好可以组成n个n位数,当n个数乘积最小时,其中最大的n位数=R(n)。R(n)是这样一串数。
{1, 24, 369, 2469, 24579, 235689, 2345789, 13456789, 123456789, 1234567899, 12344567899, 123345667899, 1233455677899, 12234456677899, 122334556678899, 1223344556778899, 12233445566778899, 112233445566778899}
Table, 9] + 1]; v = s[[ ;; n]]; Do[]; v[] = v[]*10 + d, {d, s[]}]; Max, {n, 18}]
编码依据: 1,将A前n^2个数码进行升序排列。2,分配n个最小数码(非0)为最高位,使n个数每个都有一个当前值。3,每次进行相同的分配:依次取数码填在当前值最小的数后面。4,最后得到最小的n位数=R(n)。
题目2。A = {1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,6,7,8,9,1,2,3,4,5,......},
用A前n^2个数码, 恰好可以组成n个n位数,当n个数乘积最大时,其中最小的n位数=R(n)。R(n)是这样一串数。
{1, 32, 763, 7642, 77542, 886532, 8865432, 88765431, 987654321, 9876654321, 98776543321, 988765543321, 9887665443221, 98877655433221, 988876655433221, 9888776554433211, 98887766554433211, 998877665544332211}
Table, 9] + 1, Greater]; t = s[[ ;; n]]; Do[]; t[] = t[]*10 + d, {d, s[]}]; Min, {n, 18}]
编码依据: 1,将A前n^2个数码进行降序排列。2,分配n个最大数码为最高位,使n个数每个都有一个当前值。3,每次进行相同的分配:依次取数码填在当前值最小的数后面。4,最后得到最小的n位数=R(n)。
题目3。A = {1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,......},
用A前n^2个数码, 恰好可以组成n个n位数,当n个数乘积最小时,其中最大的n位数=R(n)。R(n)是这样一串数。
{1, 24, 369, 2469, 23579, 234679, 2245789, 22345789, 123456789, 1023456789, 10234567899, 102344567899, 1023345667899, 10223445677899, 101233455677899, 1012334456678899, 10122344556778899, 101223344566778899}
Table, 10]]; t = Count; v = s[]; Do[]; v[] = v[]*10 + d, {d, Join], s[]]}]; Max, {n, 18}]
编码依据: 1,将A前n^2个数码进行升序排列。2,分配n个最小数码(非0)为最高位,使n个数每个都有一个当前值。3,每次进行相同的分配:依次取数码填在当前值最小的数后面。4,最后得到最小的n位数=R(n)。
题目4。A = {1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,......},
用A前n^2个数码, 恰好可以组成n个n位数,当n个数乘积最大时,其中最小的n位数=R(n)。R(n)是这样一串数。
{1, 32, 763, 6642, 77531, 875421, 8865421, 88754321, 887654321, 9876543210, 98765543210, 987765432210, 9877665433210, 98876554432210, 988766554332110, 9887766544322110, 98887665544322110, 988877655443322110}
Table, 10], Greater]; t = s[[ ;; n]]; Do[]; t[] = t[]*10 + d, {d, s[]}]; Min, {n, 18}]
编码依据: 1,将A前n^2个数码进行降序排列。2,分配n个最大数码为最高位,使n个数每个都有一个当前值。3,每次进行相同的分配:依次取数码填在当前值最小的数后面。4,最后得到最小的n位数=R(n)。
王守恩
发表于 2025-9-1 10:06:14
上上手。
36个数={1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105, 120, 136, 153, 171, 190, 210, 231, 253, 276, 300, 325, 351, 378, 406, 435, 465, 496, 528, 561, 595, 630, 666}
36个数的数码展开={1,3,6,1,0,1,5,2,1,2,8,3,6,4,5,5,5,6,6,7,8,9,1,1,0,5,1,2,0,1,3,6,1,5,3,1,7,1,1,9,0,2,1,0,2,3,1,2,5,3,2,7,6,3,0,0,3,2,5,3,5,1,3,7,8,4,0,6,4,3,5,4,6,5,4,9,6,5,2,8,5,6,1,5,9,5,6,3,0,6,6,6}
用这些数码构建36个数,当36个数的乘积最大时。
这36个数=63, 63, 63, 63, 72, 72, 72, 72, 81, 82, 82, 82, 91, 91, 91, 91, 541, 541, 541, 541, 541, 551, 551, 551, 551, 551, 620, 621, 630, 630, 630, 630, 630, 630, 630, 630。——要求最大数 - 最小数 = 最小。