zpz77777 发表于 2011-6-22 08:40:46

年龄为出生年份的数码之和——用mathcad解趣味数学题

这是一个趣味智力题目,同类题目流行已久,老朽一时心血来潮,用mathcad14编写了一个通用的编程板程序,供朋友们欣赏。

zpz77777 发表于 2011-6-24 06:36:21


没看明白老人家的答案,我也给一个答案,答案如下:
19912011年的年纪是20岁,似乎只有这一个答案,
不过你的答案与我的似乎很不一样呀。

Mathematica的代码如下:
(*2011年的年龄等于出生年份的数字的和* ...
mathematica 发表于 2011-6-23 11:07 http://bbs.emath.ac.cn/images/common/back.gif
老朽不懂Mathematica,但2楼的答案仅仅是整个一组答案的一个特例,这种问题有无穷多答案,所以原问题才给出了一个限制,(30——40岁之间)。
比如,11岁这个答案,因为出生年分为 2011-11=2000 ,年份数码和 2+0+0+0=2,岁数数码和 1+1=2,符合题意要求,所以是正确答案。同理 38岁 这个答案 ,因为它满足 出生年份=2011-38=1973, 而 1+9+7+3=20 ,2+0=2 ,岁数数码和 3+8 =111+1=2 ,符合题意要求,再加上38岁这个特解,符合题给的限制,所以他才是我们寻求的答案。
       前面我们用 mathcad14 为我们给出了所有100岁以内的答案,
       我想,Mathematica 一定能给出一定值域内的全部解的,就看使用者怎么驾驭它了。

zpz77777 发表于 2011-6-24 07:29:21

本帖最后由 zpz77777 于 2011-6-24 07:33 编辑

补充说明:
    mathcad 是图形界面,其输出的嵌套数组的含意、读法、对不熟悉他的阅读者,有些隔膜,为此我把输出矢量加以注解在这里补贴出来,希望能收到一目了然的效果。

到处瞎逛 发表于 2011-6-24 11:13:58

没大看懂题目。比如第一个2009年出生的,他的年份的数字相加是11啊。怎么是两岁呢?

hujunhua 发表于 2011-6-24 12:09:11

老先生算的是“年龄的数码终极和等于出生年份的数码终极和”。
终极和,就是叠代求和,直到1位数。等价于模9同余。

zpz77777 发表于 2011-6-24 19:04:28

本帖最后由 zpz77777 于 2011-6-24 19:06 编辑

老先生算的是“年龄的数码终极和等于出生年份的数码终极和”。
终极和,就是叠代求和,直到1位数。等价于模9同余。
hujunhua 发表于 2011-6-24 12:09 http://bbs.emath.ac.cn/images/common/back.gif
一语中的!!!
    我那个小程序,就是利用的“模9同余”。

hujunhua 发表于 2011-6-24 22:49:58

但是结果与你当初要求的不同。题目的要求是
Ages=∑digits(2011-Ages)

您的搜索程序得到的是Ages≡∑digits(2011-Ages)(mod9)

两者并不等价,您应该从搜索结果中挑选满足原等式的解。您只顾前行,忘了回头了。

Ages≡∑digits(2011-Ages)(mod9)可以简单解得Ages≡2(mod9), 何劳搜索程序。由于0<Ages<2011(愿先生长寿如此),所以这个同余集中只有floor(2011/9)=223解,而不是先生所说的无穷多解。

zpz77777 发表于 2011-6-25 06:46:12

本帖最后由 zpz77777 于 2011-6-25 07:10 编辑

但是结果与你当初要求的不同。题目的要求是
Ages=∑digits(2011-Ages)

您的搜索程序得到的是Ages≡∑digits(2011-Ages)(mod9)

两者并不等价,您应该从搜索结果中挑选满足原等式的解。您只顾前行,忘了回头了。 ...
hujunhua 发表于 2011-6-24 22:49 http://bbs.emath.ac.cn/images/common/back.gif
    1、老朽一直认为对一个整数求其各位数码的和,就是求他各位数码的“终极和”,二者是等价的。此类年龄问题所要求的“出生年份数码和”就是它的“终极和”。似乎是“约定俗成”的。正是建立在这个认识基础上,才会有本题说明中的“利用同余理论的解答简洁而巧妙:任何一个正
整数除以9所得的余数,与这个数的数码之和除以9所得的余数相等。”的论断出现,有此论断的补充,再在题目中把“数码和”改为“数码终极和”是不是就可以说得通了?
   2、mathcad 似乎没有 digits 语句,所以无法做到“强大的mathematica”那么简单直接,
   3、“无穷多解”这个断语是老朽误下,确如先生所说,对于2011来说,他只有223个解。
老朽并非数学专业人士,只是个爱好者而已,还望多多指教。

zpz77777 发表于 2011-6-25 08:08:16

8# zpz77777
老朽又想了一下,觉得整个问题出在老朽题目叙述不够严格上,这个题目老朽设定数字之后,由于假定是“各位数码终极和”,所以必定有多解,才增加一个“30——40之间”限制条件,但如果不用“终极和”这个假定,她就只能是 1+9+9+1=20 即20岁,这一个答案才合格,可惜这个答案不在30——40之间,也是不合题意的,所以要行得通,只有在题中限定“终极和”才可以。

mathematica 发表于 2013-10-5 17:13:49

zpz77777 发表于 2011-6-24 06:36
老朽不懂Mathematica,但2楼的答案仅仅是整个一组答案的一个特例,这种问题有无穷多答案,所以原问题才给 ...

总算看明白你题目的意思了!
页: [1] 2
查看完整版本: 年龄为出生年份的数码之和——用mathcad解趣味数学题