喜欢 发表于 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个原数其中一个也行,我会给你评分~

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

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

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

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

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

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



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

沉宝 发表于 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。

牛腰 发表于 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。

自己想出来的。{:soso_e113:}

喜欢 发表于 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道题?如果没时间就只试最后两道吧~

喜欢 发表于 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 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:lol

上面没说清楚的是(1)如果一位数的减法得了负数,就加10的倍数,直到得出一个个位正数,(2)上一位数的起始值向上round到最小的10的倍数,10减去它的十位数就是下一位数起始值的个位数。

喜欢 发表于 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的?
每道题都做减法大竖式吗?

补充了我上面的回复。

喜欢 发表于 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。

想着容易,解释起来挺饶的{:soso_e100:}

发表于 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

黑洞的颜色 发表于 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-

喜欢 发表于 2014-8-27 04:36:34

牛腰 发表于 2014-8-26 15:22
以ABCD=5992为例

d: 10-2=8


我觉得做起来也很绕啊,这样的算法,能在5秒内就把任何一题心算出来么?

喜欢 发表于 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题中后面两个。

黑洞的颜色 发表于 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

想明白了算得非常快。

喜欢 发表于 2014-8-27 04:43:58

黑洞的颜色 发表于 2014-8-26 15:31
有趣
我自己的解法如下
1. 令 MNOP=10000-ABCD


您这是用电脑算呢还是人脑算呢?{:214:}

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

牛腰 发表于 2014-8-27 04:45:35

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

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

黑洞的颜色 发表于 2014-8-27 04:47:16

喜欢 发表于 2014-8-27 04:43
您这是用电脑算呢还是人脑算呢?

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

仔细看看就发觉不过是先做一个10000减法,然后不断加减个位数字而已。

喜欢 发表于 2014-8-27 04:57:12

黑洞的颜色 发表于 2014-8-26 15:42
有趣
我自己的解法如下
1. 令 MNOP=10000-ABCD


哎哟,你这个我已经判断不能了!{:214:}

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

页: [1] 2 3 4
查看完整版本: 【动脑筋】数学魔术