找回密码
 欢迎注册
查看: 403|回复: 27

[求助] 有多少个这样的4位数

[复制链接]
发表于 2024-10-25 09:04:17 | 显示全部楼层 |阅读模式

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

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

×
有多少个同时符合以下两条要求的4位数:
1、能被4整除,并且各位数字之和亦能被4整除,
2、含有数字4。
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2024-10-25 14:47:55 | 显示全部楼层
我的做法如下:
假定这个四位数是abcd, 我把它分成 ab 和 cd 两截,条件等价于
1、cd能被4整除,a+b除以4的余数加上c+d除以4的余数,和能被4整除。
2、ab含4且cd含4 + ab含4且cd不含4 + ab不含4且cd含4.
下表是分类统计数据表
cd含4
cd无4
余0:
5组
余1:
0组
余2:
2组
余3:
0组
余0:
4组
余1:
4组
余2:
4组
余3:
6组
ab含4
余0:4组
20
/
/
/
16
/
/
/
余1:6组
/
/
/
0
/
/
/
36
余2:4组
/
/
8
/
/
/
16
/
余3:4组
/
0
/
/
/
16
/
/
ab无4
余0:18组
90
/
/
/




余1:16组
/
/
/
0




余2:19组
/
/
38
/




余3:19组
/
0
/
/




合计:20+8+16*3+36+90+38=240

表中余0,余1,余2,余3是两数之和除以4的余数。各组的大小按下帖的方法详列而来,我想知道有没有更简单的方法,谢谢!

点评

nyy
你牛逼,我到现在都不知道如何在论坛上弄表格  发表于 2024-10-28 11:52
nyy
一点一点穷举,有意思吗  发表于 2024-10-28 10:25
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
 楼主| 发表于 2024-10-26 12:49:01 | 显示全部楼层

2#中分组统计详情

4(1).jpg
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-10-27 13:44:09 | 显示全部楼层
用{x}表示整数 x 除以 4 的余数,四位数记为abcd, 按题目的条件1可得
{c}={a+b}={{a}+{b}}
{d}={2c}(这称为同余式)
于是我们可以按{x}的值将0,1,2,3,4,5,6,7,8,9分成4组
{0}: (0,4,8),
{1}: (1,5,9),
{2}: (2,6),
{3}: (3,7)
且称为同余组。
如果abcd是一个符合条件1的数,那么各位上的数字换成同余组的其它数字也是一个满足条件1的四位数(首位不为零的话)。、
也就是说它代表一簇解{a}{b}{c}{d}. 这一簇解的个数就等于4个同余组的长度之积。
任取 {a}, {b},可按上面的同余式计算出 {c}, {d},然后结合条件2滤去不含4的解。
例1 {a}=0,{b}=0,→{c}=0, {d}=0,  可得0000簇:(48)(048)(048)(048), 其中不含4的为(8)(08)(08)(08), 所以这一簇有2×3×3×3-1×2×2×2=46解。
例2 {a}=1,{b}=1,→{c}=2, {d}=0,  可得1120簇:(159)(159)(26)(4), 这一簇有3×3×2×1=18解。

一共16簇,全列如下:
0000:(48)(048)(048)(048)-(8)(08)(08)(08), 54-8=46
0112:(4)(159)(159)(26), 18
0220:(48)(26)(26)(048)-(8)(26)(26)(08),  24-8=16
0332:8
1012:(159)(4)(159)(26), 18
1120:  18
1232:  0
1300:(159)(37)(048)(048)-(159)(37)(08)(08), 54-24=30
2020:  (26)(048)(26)(048)-(26)(08)(26)(08), 36-16=20
2132:0
2200:20
2312:0
3032:8
3100: 30
3212: 0
3320: 8
合计240

点评

@nyy 手工枚举,由a,b计算c,d就是最好的方法了。  发表于 2024-10-30 10:03
nyy
为什么你要跟着他的思路走,你不觉得他的思路很累人吗?  发表于 2024-10-28 13:32
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-10-27 16:59:54 | 显示全部楼层
题目太碎了,直接穷举法!从1000开始穷举!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-10-28 09:23:52 | 显示全部楼层
240个,直接计算机穷举!

  1. Clear["Global`*"];(*清除所有变量*)
  2. aa=Range[1000,10^4,4]
  3. bb=Select[aa,Mod[Total@IntegerDigits[#],4]==0&]
  4. cc=Select[bb,MemberQ[IntegerDigits[#],4]&]
复制代码

  1. {1124, 1164, 1304, 1340, 1344, 1348, 1384, 1412, 1416, 1452, 1456, \
  2. 1492, 1496, 1524, 1564, 1704, 1740, 1744, 1748, 1784, 1924, 1964, \
  3. 2024, 2064, 2204, 2240, 2244, 2248, 2284, 2420, 2424, 2428, 2460, \
  4. 2464, 2468, 2604, 2640, 2644, 2648, 2684, 2824, 2864, 3104, 3140, \
  5. 3144, 3148, 3184, 3324, 3364, 3432, 3436, 3472, 3476, 3504, 3540, \
  6. 3544, 3548, 3584, 3724, 3764, 3904, 3940, 3944, 3948, 3984, 4000, \
  7. 4004, 4008, 4040, 4044, 4048, 4080, 4084, 4088, 4112, 4116, 4152, \
  8. 4156, 4192, 4196, 4220, 4224, 4228, 4260, 4264, 4268, 4332, 4336, \
  9. 4372, 4376, 4400, 4404, 4408, 4440, 4444, 4448, 4480, 4484, 4488, \
  10. 4512, 4516, 4552, 4556, 4592, 4596, 4620, 4624, 4628, 4660, 4664, \
  11. 4668, 4732, 4736, 4772, 4776, 4800, 4804, 4808, 4840, 4844, 4848, \
  12. 4880, 4884, 4888, 4912, 4916, 4952, 4956, 4992, 4996, 5124, 5164, \
  13. 5304, 5340, 5344, 5348, 5384, 5412, 5416, 5452, 5456, 5492, 5496, \
  14. 5524, 5564, 5704, 5740, 5744, 5748, 5784, 5924, 5964, 6024, 6064, \
  15. 6204, 6240, 6244, 6248, 6284, 6420, 6424, 6428, 6460, 6464, 6468, \
  16. 6604, 6640, 6644, 6648, 6684, 6824, 6864, 7104, 7140, 7144, 7148, \
  17. 7184, 7324, 7364, 7432, 7436, 7472, 7476, 7504, 7540, 7544, 7548, \
  18. 7584, 7724, 7764, 7904, 7940, 7944, 7948, 7984, 8004, 8040, 8044, \
  19. 8048, 8084, 8224, 8264, 8400, 8404, 8408, 8440, 8444, 8448, 8480, \
  20. 8484, 8488, 8624, 8664, 8804, 8840, 8844, 8848, 8884, 9124, 9164, \
  21. 9304, 9340, 9344, 9348, 9384, 9412, 9416, 9452, 9456, 9492, 9496, \
  22. 9524, 9564, 9704, 9740, 9744, 9748, 9784, 9924, 9964}
复制代码


总共240个,没技术含量。一点技术含量都没有!
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-10-28 13:07:09 | 显示全部楼层
nyy 发表于 2024-10-28 09:23
240个,直接计算机穷举!
  1. Clear["Global`*"];(*清除所有变量*)
  2. aa=Select[Range[1000,10^4,4],And[Mod[Total@IntegerDigits[#],4]==0,MemberQ[IntegerDigits[#],4]]&]
复制代码

写成一行代码!

点评

有个SumDigits[#], 直接求一个数的各位数字之和  发表于 2024-10-29 21:30
Length@Select[IntegerDigits@Range[1000, 9999, 4], Mod[Total@#, 4] == 0&& MemberQ[#, 4] &]  发表于 2024-10-29 17:46
IntegerDigits 用了两遍  发表于 2024-10-29 17:45
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-10-29 21:40:19 | 显示全部楼层
早在3#就发过下面的程序和结果,后来整理删帖了。也想到有人会再发出来的
Select[Range[1000,9999,4],Mod[SumDigits@#,4]==0&& MemberQ[IntegerDigits@#, 4] &]//Length

点评

nyy
题目太弱小了,没技术含量  发表于 2024-10-30 09:07

评分

参与人数 2威望 +16 金币 +16 贡献 +16 经验 +16 鲜花 +16 收起 理由
王守恩 + 8 + 8 + 8 + 8 + 8 很给力!
northwolves + 8 + 8 + 8 + 8 + 8 赞一个!

查看全部评分

毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-10-30 09:55:26 | 显示全部楼层
nyy 发表于 2024-10-28 09:23
240个,直接计算机穷举!

这样的4位数有240个。
这样的5位数有2706个。
这样的6位数有30001个。
这样的7位数有——个?

点评

Table[Length@Select[Range[10^(a - 1), 10^a - 1, 4],And[Mod[Total@IntegerDigits[#], 4] == 0, MemberQ[IntegerDigits[#], 4]] &], {a, 9}]  发表于 2024-10-31 05:18
好奇!240, 2706, 30001, 326298, 3499240。怎么鼓捣也出不来了。  发表于 2024-10-31 05:08
nyy
有技术含量吗?  发表于 2024-10-30 20:10
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
发表于 2024-11-1 10:11:28 | 显示全部楼层
1, 含有数字4。这样的n位数是这样一串数。

{1, 18, 252, 3168, 37512, 427608, 4748472, 51736248, 555626232, 5900636088, 62105724792}

2, 能被4整除。这样的n位数是这样一串数。

{2, 22, 225, 2250, 22500, 225000, 2250000, 22500000, 225000000, 2250000000}

3, 各位数字之和能被4整除。这样的n位数是这样一串数。

{2, 22, 224, 2249, 22500, 225002, 2250004, 22500004, 225000000}

把3者混合在一起就成了第4串数,第4串数就出不来了。

4, {0, 0, 18, 240, 2706, 30001, 326298, 3499240, 37118136}
  1. Table[Length@Select[Range[10^(a - 1), 10^a - 1, 4], And[Mod[Total@IntegerDigits[#], 4] == 0, MemberQ[IntegerDigits[#], 4]] &], {a, 9}]
复制代码

5, {0, 0, 4, 60, 677, 7500, 81573, 874809, 9279532, 97578279}
  1. Table[Length@Select[Range[10^(a - 1), 10^a - 1, 8], And[Mod[Total@IntegerDigits[#], 8] == 0, MemberQ[IntegerDigits[#], 8]] &], {a, 10}]
复制代码

18=4*4+2。
240=60*4+0。
2706=677*4-2。
30001=7500*4+1。
326298=81573*4+6。
3499240=874809*4+4。
37118136=9279532*4+8。
?=97578279*4+?。

可惜第5串数还是出不来。

点评

王老师算一下100位的数字,各位数字之和模4余0,1,2,3的分别有多少个?200位的呢?1000位的呢?  发表于 2024-11-1 20:29
毋因群疑而阻独见  毋任己意而废人言
毋私小惠而伤大体  毋借公论以快私情
您需要登录后才可以回帖 登录 | 欢迎注册

本版积分规则

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

GMT+8, 2024-11-9 11:03 , Processed in 0.052860 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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