设为首页收藏本站

爱吱声

 找回密码
 注册
搜索
查看: 15183|回复: 83

[其他] 【动脑筋】数学魔术

[复制链接]
  • TA的每日心情
    奋斗
    20 分钟前
  • 签到天数: 2937 天

    [LV.Master]无

    发表于 2014-8-27 00:26:50 | 显示全部楼层 |阅读模式
    昨天在天才帮出了一道题。既然天才帮声势浩大,帮众日多,我以为在那里出题就等于在版面出题了。
    不料还是有很多人没看见这题,就是说还应该发在版面才能给更多的人看到。
    可是,找来找去,不知道发在哪个版面合适。有心发在研究生院,但一看规矩,得有论文水平才行。俺还是别捣乱了。
    就这儿吧,日志随笔,谁都能看见了,是吧?现在出题。

    =====================================

    本题还是取自七旬老人发明"数学魔术" 5秒猜出你心里想的数

    请你想一个四位的自然数abcd,把它乘以8889,告诉我乘积的4位尾数ABCD,我就能知道你想的是什么数。
    例如:
    如果你告诉我尾数是9026,则我知道你原来想的那个数是1234;
    如果你告诉我尾数是7421,则我知道你原来想的那个数是6789;
    如果你告诉我尾数是5679,则我知道你原来想的那个数是1111;
    ……


    本题有几重玩法。

    第一重:请大家出题,我来给出答案。
    即,你来给出尾数ABCD,我来给出原数abcd。
    例:你说“ABCD=9026”,我说:“abcd=1234”。——这就是那七旬老者的玩法,即所谓“数学魔术”。很神奇?

    第二重:我来出题,参与者给出答案。
    1,ABCD=9369
    2,ABCD=2412
    3,ABCD=7889
    4,ABCD=9160
    5,ABCD=0668
    6,ABCD=8059
    7,ABCD=8002
    8,ABCD=2908
    9,ABCD=5094
    10,ABCD=5992
    这些是原数乘以8889之后的末尾四位,你能给出10个原数其中一个也行,我会给你评分~

    第三重:打擂——参与者给出算法。
    注意,我的算法都不是从网上找来的,而是自己推理演算得出的。也请你注明你的算法是找来的还是算出来的。——我都会给你评分~

    第四重:揭榜——参与者推演出算法的原理。
    我就是为了寻求这个算法并推演严格的逻辑,而花了大半天的时间!
    你若能给出清晰无误的推演过程,你就是俺的知音!俺的偶像!以后就有人跟俺一起玩了~

    ===========================================

    昨天出完这题后。我把这题给了某聪明的朋友。
    只肖几分钟,朋友就给出了一个算法,比俺的算法更简单易记——而且我相信这就是那老者的算法。
    因为我的算法推演过程比较复杂,算法相对而言不大容易记住,算的过程也需小心谨慎,稍不留神就容易出错。

    不过,凭心而论,我的算法也不是不可取,因为某种意义上讲,俺的算法还是更容易心算出来的。没有经过心算训练的人用我的算法能更快给出答案呢!

    所以,无论你推演出了哪种算法,你都是好样的!



    (嗯?还可以选来自哪个群组?选了天才帮,看看有个什么效果。)来自群组: 天才帮

    评分

    参与人数 1爱元 +2 收起 理由
    mezhan + 2

    查看全部评分

    该用户从未签到

    发表于 2014-8-27 02:24:26 来自手机 | 显示全部楼层
    很简单,8889=10000-1111。

    没时间了,回头再写。

    该用户从未签到

    发表于 2014-8-27 02:59:37 | 显示全部楼层
    本帖最后由 仁 于 2014-8-27 03:28 编辑

    个位数是0:         D+d=10 or 0
    十位数是0:        C+c+d=0, 10, 9 or 19  (如果 D+d =0 , 可能的结果是0或10,如果D+d=10, 可能的结果是9或19)
    ...


    (10000 - 1000 -100 - 10 -1 )* abcd = 10000 * x  + ABCD
    也就是说 abcd000 + abcd00 + abcd0 + abcd + ABCD 的结果一定是可以被10000整除,也就是说从个位到千位都是0。

    点评

    接下来不很简单吗?让百位数和千位数都是0就好了。  发表于 2014-8-27 03:38
    接下来呢?  发表于 2014-8-27 03:29

    评分

    参与人数 1爱元 +2 收起 理由
    喜欢 + 2 鼓励~

    查看全部评分

    该用户从未签到

    发表于 2014-8-27 03:48:31 | 显示全部楼层
    本帖最后由 牛腰 于 2014-8-27 04:00 编辑

    abcd X 8889 = abcd X (1,0000 - 1111) = abcd,0000 - aaaa000 - bbbb00 - cccc0 - dddd

    只算最后四位数的话,那就是 (1),0000 - a000 - bb00 - ccc0 - dddd

    如果ABCD=9369。能决定个位数的只有d,所以d=10-9=1

    十位数 = 9 - 6 - c - d, 那么 c = 9 - 6 - 1 = 2

    百位数 = 9(或19) - 3 - b - c - d,b = 9 - 3 - 1 - 2 = 3

    千位数 = 9(或19) - 9 - a - b - c - d,a = 19 - 9 - 1 - 2 - 3 = 4

    验算:4321 X 8889 = 3840,9369

    上面如果ABCD的个位数是0,那么十位数就从10而不是9开始减起。再往后推也是一样,后面的借位决定每一位数的开始值是10,9还是8。

    自己想出来的。

    点评

    油菜: 0.0
    油菜: 0
    最后四位是:10000-d000-cd00-bcd0-abcd ? 从后面的演算看貌似如此。  发表于 2014-8-27 04:03

    评分

    参与人数 1爱元 +3 收起 理由
    喜欢 + 3 鼓励

    查看全部评分

  • TA的每日心情
    奋斗
    20 分钟前
  • 签到天数: 2937 天

    [LV.Master]无

     楼主| 发表于 2014-8-27 03:59:53 | 显示全部楼层
    牛腰 发表于 2014-8-26 14:48
    abcd X 8889 = abcd X (1,0000 - 1111) = abcd,0000 - aaaa000 - bbbb00 - cccc0 - dddd

    只算最后四位数的 ...

    用你的方法试试我出的10道题?如果没时间就只试最后两道吧~
  • TA的每日心情
    奋斗
    20 分钟前
  • 签到天数: 2937 天

    [LV.Master]无

     楼主| 发表于 2014-8-27 04:02:11 | 显示全部楼层
    仁 发表于 2014-8-26 13:59
    个位数是0:         D+d=10 or 0
    十位数是0:        C+c+d=0, 10, 9 or 19  (如果 D+d =0 , 可能的结果是0或10,如果D+d ...
    也就是说 abcd000 + abcd00 + abcd0 + abcd + ABCD 的结果一定是可以被10000整除


    这句话似乎不是你本来想表达的意思?再仔细看看?

    点评

    仁说的没错。是我没理解。  发表于 2014-8-27 05:12

    该用户从未签到

    发表于 2014-8-27 04:08:30 | 显示全部楼层
    本帖最后由 牛腰 于 2014-8-27 04:14 编辑
    喜欢 发表于 2014-8-27 03:59
    用你的方法试试我出的10道题?如果没时间就只试最后两道吧~


    ABCD = 5094

    d = 10 - 4 = 6
    c = 19 - 9 - 6 = 4
    b = 18 - 0 - 6 - 4 = 8
    a = 28 - 5 - 6 - 4 - 8 = 5
    验算:5846 X 8889 = 5196,5094


    ABCD = 5992
    d = 10 - 2 = 8
    c = 19 - 9 - 8 = 2
    b = 28 - 9 - 2 - 8 = 9
    a = 27 - 5 - 8 - 2 - 9 = 3
    验算:3928 X 8889 = 3491,5992

    上面没说清楚的是(1)如果一位数的减法得了负数,就加10的倍数,直到得出一个个位正数,(2)上一位数的起始值向上round到最小的10的倍数,10减去它的十位数就是下一位数起始值的个位数。
  • TA的每日心情
    奋斗
    20 分钟前
  • 签到天数: 2937 天

    [LV.Master]无

     楼主| 发表于 2014-8-27 04:12:19 | 显示全部楼层
    牛腰 发表于 2014-8-26 15:08
    ABCD = 5094

    d = 10 - 4 = 6

    你如何确定那里是19或18或28或27的?
    每道题都做减法大竖式吗?

    该用户从未签到

    发表于 2014-8-27 04:14:42 | 显示全部楼层
    喜欢 发表于 2014-8-27 04:12
    你如何确定那里是19或18或28或27的?
    每道题都做减法大竖式吗?

    补充了我上面的回复。
  • TA的每日心情
    奋斗
    20 分钟前
  • 签到天数: 2937 天

    [LV.Master]无

     楼主| 发表于 2014-8-27 04:20:04 | 显示全部楼层
    牛腰 发表于 2014-8-26 15:14
    补充了我上面的回复。

    能不能再说明白点儿?因为这魔术弄好了应该人人会玩呢。
    你能用实例(我的10道题就行)把玩的过程解释清楚、教会旁人么?

    该用户从未签到

    发表于 2014-8-27 04:22:41 | 显示全部楼层
    本帖最后由 牛腰 于 2014-8-27 04:26 编辑
    喜欢 发表于 2014-8-27 04:12
    你如何确定那里是19或18或28或27的?
    每道题都做减法大竖式吗?


    以ABCD=5992为例

    d: 10-2=8

    c: 起始值个位数是10-1=9,9+8=17大于10,所以起始值是19, 19-9-8=2

    b: 起始值个位数是10-2 (19变20) = 8,9+8+2=19,起始值就是28才能得到一个个位数:28-9-2-8=9

    a: 起始值个位数是10-3(28变30)=7, 5+8+2+9=24,起始值必须是27,27-5-8-2-9=3。

    想着容易,解释起来挺饶的

    点评

    对是对的,就是麻烦了点儿。  发表于 2014-8-28 21:35

    该用户从未签到

    发表于 2014-8-27 04:27:40 | 显示全部楼层
    喜欢 发表于 2014-8-27 04:02
    这句话似乎不是你本来想表达的意思?再仔细看看?

    要想严谨地说明还必叫麻烦,但是思路在那里,实际操作很简单。ABCD=9026

    D+d= 0 or 10 >>>> d=4
    C+c+d=9 or 19 >>>> c=3
    B+b+c+d=9 or 19 or 29 >>> b=2
    A+a+b+c+d =0 or 10 or 20or 30 >>>> a=1

    最后四位数字都是0:
    1234000 + 123400 + 12340 + 1234 + 9026=1380000
  • TA的每日心情
    开心
    2024-1-5 22:47
  • 签到天数: 1231 天

    [LV.10]大乘

    发表于 2014-8-27 04:31:13 | 显示全部楼层
    有趣
    我自己的解法如下
    1. 令 MNOP=10000-ABCD
    2. 为了方便说明,
    定义一个数X的各位和为 sum.dig(X).
    定义mod10(Y): (i) Y>0,则为Y的个位数字
    (i)

    1. d=P
    2. O-

    评分

    参与人数 1爱元 +2 收起 理由
    喜欢 + 2 看不懂也鼓励~

    查看全部评分

  • TA的每日心情
    奋斗
    20 分钟前
  • 签到天数: 2937 天

    [LV.Master]无

     楼主| 发表于 2014-8-27 04:36:34 | 显示全部楼层
    牛腰 发表于 2014-8-26 15:22
    以ABCD=5992为例

    d: 10-2=8

    我觉得做起来也很绕啊,这样的算法,能在5秒内就把任何一题心算出来么?
  • TA的每日心情
    奋斗
    20 分钟前
  • 签到天数: 2937 天

    [LV.Master]无

     楼主| 发表于 2014-8-27 04:41:24 | 显示全部楼层
    仁 发表于 2014-8-26 15:27
    要想严谨地说明还必叫麻烦,但是思路在那里,实际操作很简单。ABCD=9026

    D+d= 0 or 10 >>>> d=4
    B+b+c+d=9 or 19 or 29 >>> b=2
    A+a+b+c+d =0 or 10 or 20or 30 >>>> a=1


    两个式子中,前一个一定是9/19/29之一吗?
    后一个,怎么会是0/10/20/30之一呢?

    你换个例子试试看,比如用我出的10题中后面两个。
  • TA的每日心情
    开心
    2024-1-5 22:47
  • 签到天数: 1231 天

    [LV.10]大乘

    发表于 2014-8-27 04:42:28 | 显示全部楼层
    本帖最后由 黑洞的颜色 于 2014-8-27 04:44 编辑

    有趣
    我自己的解法如下
    1. 令 MNOP=10000-ABCD
    2. 为了方便说明,
    定义一个数X的各位和为 sum.dig(X).
    定义mod(Y): (i) Y>=0,则为Y的个位数字 (ii) Y<0, 则为 10 - Y的个位数字
    如 mod(3)=7, mod(-2)=8

    那么
    1. d=P
    2. c=mod(O-d)
    3. b=mod(N-sum.dig(c+d))
    4. a=mod(M-sum.dig(c+c+d))

    即先得到10000-ABCD,再从后向前找,减去前面已经找到的数字的和的各位和,如果是负数则加10。

    比如
    ABCD=7421,
    得到2579,
    d=9;
    c=mod(7-9)=mod(-2)=8;
    c+d=17, sum.dig=1+7=8,  b=mod(5-8)=mod(-3)=7
    b+c+d=24, sum.dig=2+4=6, a=mod(2-6)=6
    得 abcd=6789
      
    想明白了算得非常快。
  • TA的每日心情
    奋斗
    20 分钟前
  • 签到天数: 2937 天

    [LV.Master]无

     楼主| 发表于 2014-8-27 04:43:58 | 显示全部楼层
    黑洞的颜色 发表于 2014-8-26 15:31
    有趣
    我自己的解法如下
    1. 令 MNOP=10000-ABCD

    您这是用电脑算呢还是人脑算呢?

    俺们的目的是要用人脑算,5秒钟就出结果。

    该用户从未签到

    发表于 2014-8-27 04:45:35 | 显示全部楼层
    喜欢 发表于 2014-8-27 04:36
    我觉得做起来也很绕啊,这样的算法,能在5秒内就把任何一题心算出来么? ...

    刚试了一下第8题,ABCD=2908,心算出6172,可以做到。练习一下应该可以做得更快。

    评分

    参与人数 1爱元 +3 收起 理由
    喜欢 + 3 鼓励继续动脑筋~

    查看全部评分

  • TA的每日心情
    开心
    2024-1-5 22:47
  • 签到天数: 1231 天

    [LV.10]大乘

    发表于 2014-8-27 04:47:16 | 显示全部楼层
    喜欢 发表于 2014-8-27 04:43
    您这是用电脑算呢还是人脑算呢?

    俺们的目的是要用人脑算,5秒钟就出结果。 ...

    仔细看看就发觉不过是先做一个10000减法,然后不断加减个位数字而已。
  • TA的每日心情
    奋斗
    20 分钟前
  • 签到天数: 2937 天

    [LV.Master]无

     楼主| 发表于 2014-8-27 04:57:12 | 显示全部楼层
    黑洞的颜色 发表于 2014-8-26 15:42
    有趣
    我自己的解法如下
    1. 令 MNOP=10000-ABCD

    哎哟,你这个我已经判断不能了!

    貌似是对的?你自己用我那十题把这算法验算一下(十遍)好吗?

    手机版|小黑屋|Archiver|网站错误报告|爱吱声   

    GMT+8, 2024-3-29 04:10 , Processed in 0.053127 second(s), 23 queries , Gzip On.

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

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