找回密码
 欢迎注册
查看: 30633|回复: 16

[讨论] 找四位数

[复制链接]
发表于 2014-8-10 17:42:23 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?欢迎注册

×
用1到8这八个自然数组成两个四位数(不可重复使用),其中一个四位数是另一个四位数的4倍,请问这两个四位数分别是_____?
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-8-10 19:18:32 | 显示全部楼层
{1863,7452}
{1368,5472}
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-8-10 20:09:44 | 显示全部楼层
你想要代码还是人工推理呀

点评

都可以!谢谢!  发表于 2014-8-10 20:46
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-8-11 09:07:34 | 显示全部楼层
  1. Clear["Global`*"];(*Clear all variables*)
  2. Do[n4=n*4;
  3.    nd=IntegerDigits@n;
  4.    n4d=IntegerDigits@n4;
  5.    If[Union[nd,n4d]==Range[8],Print[{n,n4}]],
  6.   {n,1000,2500}]
复制代码


{1368,5472}

{1863,7452}

点评

1501次  发表于 2014-8-11 14:42
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-8-11 11:20:40 | 显示全部楼层
  1. Evaluate[4FromDigits[{#1,#2,#3,#4}]== FromDigits[{#5,#6,#7,#8}]]&/.Slot@i_:>#[[i]]/.x_:>Compile[{},Select[Permutations@Range@8,x]][]//AbsoluteTiming
复制代码

点评

8!次  发表于 2014-8-11 14:42
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-8-11 18:37:01 | 显示全部楼层
  1. Select[Permutations[Range[8], {4}], Complement[Range[8], #] == Sort[IntegerDigits[4 FromDigits[#]]] &]
复制代码

点评

最小的那个四位数的最高位数只可能是1,所以可以是7*6*5 = 210  发表于 2014-8-11 21:10
1680  发表于 2014-8-11 20:13
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-8-12 01:35:03 | 显示全部楼层

前后数值还可以掐一点,不过这样思路清晰些。
  1. Select[Range[1234,8765/4],Union[IntegerDigits[10004#]]==Range[8]&]
复制代码


还有,怎么简单推出最高位数不可能是2?

极至精细(极度复杂)控制循环的话
假设b=4a,确定a千位为1
a个位去1去5, 6种选择。并得b个位。
a十位 5种选择。并得b十位,检验后放行。
a千位 3种选择。a完全确定,检验打印。
小于 6*5*3=90
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-8-12 01:49:05 | 显示全部楼层
  1. Select[Range[Ceiling[1234,9],Floor[8765/4,9],9],Union[IntegerDigits[10004#]]==Range[8]&]
复制代码

关机前的灵光一闪


点评

没必要纠结多少次的问题,因为这个问题用电脑穷举也就千把次,追就零点几秒种没意思  发表于 2014-8-12 12:48
不錯。可以事先得知答案必是9的倍数。 a+4a≡1+2+…+8(mod9)→a≡0(mod9)  发表于 2014-8-12 11:08
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-8-12 16:40:59 | 显示全部楼层
可以手工枚举,备选数不多。由 a+4a≡1+2+…+8(mod9)→a≡0(mod9),并且1+2+…+8=36,易得a和4a的各位数字之和都是18.由此可得a的备选数集:
1278,1287,1728,1782,1827,1872,2178,2187这一组容易全部淘汰,因4{2,7,8}≡{8,8,2}(mod10). 2,7,8做个位数都使a与4a有重复数字。
1368,1386,1638,1683,1836,1863
1458,1548,1584,1854 (5不能做个位数,舍去2个)
1467,1647 (4和6不能做个位数,故其它4个排列舍去)

还剩12个,人力筛选可以胜任。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2014-8-12 20:38:02 | 显示全部楼层
按hujunhua的思路:

4的倍数后两位:12,16,24,28,32,36,48,52,56,64,72,76,84

a={1,2,7,8},4a={3,4,5,6}:4a只能是4356,4536,5364,此时a=1089,1134,1341 矛盾
a={1,3,6,8},4a={2,4,5,7},4a只能是4572,4752,5472,5724,7452,7524,此时a=1143,1188,1368,1436,1863,1881,有两个相符
a={1,4,5,8},4a={2,3,6,7}:4a只能是6372,6732,7236,此时a=1593,1683,1909 矛盾
a={1,4,6,7},4a={2,3,5,8}:4a只能是5328,5832,8532,此时a=1432,1458,2134 矛盾
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

小黑屋|手机版|数学研发网 ( 苏ICP备07505100号 )

GMT+8, 2024-11-22 19:37 , Processed in 0.026117 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表