明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 363|回复: 13

[自我挑战] 数学逻辑推理题

[复制链接]
发表于 4 天前 | 显示全部楼层 |阅读模式
这两天读了本论坛的《给讨厌数学的人:数学的奥妙和生活》,里面讲到逻辑学。忽然想到一道这方面的题目,非常烧脑。发给大家自我挑战一下:


    有一个老师,找了1个两位数,把这个两位数的约数的个数告诉了甲同学,又把这个两位数个位与十位相加后的数告诉了乙同学。
甲乙对话
    甲:我不知道这个数是多少。
    乙:我也不知道。
    甲:我可以确定这是不是偶数。
    乙:我知道这个数是多少了!
    甲:我也知道了!
求这个数是多少?(注:这个题目的前提条件是甲乙两人都是精于推理之人)

回复

使用道具 举报

 楼主| 发表于 前天 11:21 | 显示全部楼层
zhangkui9070 发表于 2025-4-7 07:29
题目有问题,既然需要这么复杂的推理,甲乙为何简单几句对话的时间就知道答案了?

甲和乙都是lisp编程高手,当场他俩就各编写了这么一段代码:
  1. ;返回整数n的约数的个数->甲
  2. (defun tt1(n / list1 i)
  3.   (setq i 1 list1 '(1))
  4.   (while (<= (setq i (1+ i)) n)
  5.     (if (= (rem n i) 0)
  6.       (setq list1 (cons i list1))
  7.     )
  8.   )
  9.   (length list1)
  10. )
  11. ;返回两位数n的个位与十位数之和->乙
  12. (defun tt2(n)
  13.   (+ (fix (/ n 10)) (rem n 10))
  14. )

  15. ;返回两位数n的甲乙值
  16. (defun tt()
  17.   (setq n 10 list2 nil)
  18.   
  19.   (while (< n 100)
  20.     (setq list2 (cons (list n (tt1 n) (tt2 n)) list2))
  21.     (setq n (1+ n))
  22.   )
  23.   (setq list2 (reverse list2))

  24.   ; 输出表格
  25.   (setq @dclfiledame (vl-filename-mktemp nil nil ".csv") ; 默认文件名、默认保存路径,扩展名为csv
  26.         fid (open @dclfiledame "w")
  27.   )
  28.   (vlax-invoke
  29.     (vlax-get-or-create-object "Wscript.Shell")
  30.     'RUN @dclfiledame) ;任意已经建立关联程序的文件
  31.   (princ "两位数" fid) (princ "," fid) (princ "甲" fid) (princ "," fid) (princ "乙" fid) (princ "\n" fid)
  32.   (foreach e list2
  33.     (progn (princ (car e) fid) (princ "," fid) (princ (cadr e) fid) (princ "," fid) (princ (caddr e) fid) (princ "\n" fid))
  34.   )
  35.   (close fid)
  36.   
  37.   (princ)
  38. )


然后在WPS表格中用筛选的方法很快得到答案的

本帖子中包含更多资源

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

x
回复 支持 1 反对 0

使用道具 举报

发表于 前天 00:43 | 显示全部楼层
本帖最后由 铃声末响春日暖 于 2025-4-7 01:16 编辑

分析一下:

甲:我不知道这个数是多少。
一个两位数,设约数个数为a,则a可能是2,3,4,5,6,7,8,9,10,12。
其中a=3的为25,49;
a=5的为16,81;
a=7的为64
a=8的为24,30,40,42,54,56,66,70,78,88;
a=9的为36
a=10的为48,80;
a=12的为60,72,84,90,96。
以上结果均可以通过约数个数定理得到。
则甲的潜台词是:
这个数不可能是36和64!

乙:我也不知道。
一个两位数,设个位数与十位数之和为b,则b的不小于1且不大于18的整数;
1099,分别是b=1和b=18中唯一符合的两位数。
则乙的潜台词是:
这个数不可能是10和99!

甲:我可以确定这是不是偶数。
潜台词:
显然a不可能是4,5,6,因为在这种情况下,所列的数既有奇数,又有偶数

乙:我知道这个数是多少了!
潜台词:
目前所有可能的数:
a=2的为11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97;
a=3的为25,49;
a=8的为24,30,40,42,54,56,66,70,78,88;
a=10的为48,80;
a=12的为60,72,84,90,96。

则b=2的有11;
b=3的有30;
b=4的有13,31,40;
b=5的有23,41;
b=6的有24,42,60;
b=7的有25,43,61,70;
b=8的有17,53,71,80;
b=9的有54,72,90;
b=10的有19,37,73;
b=11的有29,47,56,83;
b=12的有48,66,84;
b=13的有49,67;
b=14的有59;
b=15的有24,78,96;
b=16的有79,88,97;
b=17的有89;
则b只能是2,3,14和17中的一个,才能知道这个数是11,30,59还是89

甲:我也知道了!
潜台词:
而11,59和89是a=2时的情况,甲不能知道;
30是a=8时的情况,甲可以知道。

故这个数就是30!



回复 支持 0 反对 1

使用道具 举报

发表于 4 天前 | 显示全部楼层
烧的一塌糊涂!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 4 天前 | 显示全部楼层
指尖 发表于 2025-4-5 17:55
烧的一塌糊涂!!

是的,这道题顶级难!但解出来超级有成就感
回复 支持 反对

使用道具 举报

 楼主| 发表于 4 天前 | 显示全部楼层
先给出部分推理:
因为是两位数,所以约数的个数≥2。
先假定约数个数为2,则这个数是一个大于等于10小于等于99的质数,由于这样的质数很多,所以甲第一句话说不知道这个数是多少很合理,乙说不知道只能说明这个数不等于10或99,甲接着说可以确定这个数是不是偶数就很好解释了,因为两位数的质数肯定是奇数了!这时乙说我知道这个数了,因为两位数的质数只有21个,所以我们可以用排除法确定:两位数的质数的个位与十位之和唯一的只有11、59、67、89。但是下一句是甲说:“我也知道了!”就有问题了。不管这个数是11、59、67还是89,甲都不可能知道!
所以约数个数为2的假设不成立!!!由上推出这个数是大于10小于99的合数!!!
回复 支持 反对

使用道具 举报

发表于 3 天前 | 显示全部楼层
DS给的答案是16。

点评

DS是一本正经的胡说八道?  发表于 3 天前
不对,这个我觉得DS不会  发表于 3 天前
回复 支持 反对

使用道具 举报

 楼主| 发表于 3 天前 | 显示全部楼层
约数的个数也不可能是4、5、6,因为约数为4、5、6的数有奇数也有偶数,这种情况下甲说的第二句话:“我知道这个数是不是偶数”就不成立了!
回复 支持 反对

使用道具 举报

发表于 前天 07:29 来自手机 | 显示全部楼层
题目有问题,既然需要这么复杂的推理,甲乙为何简单几句对话的时间就知道答案了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 前天 07:40 | 显示全部楼层
铃声末响春日暖 发表于 2025-4-7 00:43
分析一下:

甲:我不知道这个数是多少。

完全正确,推理高手!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-4-9 07:56 , Processed in 0.183977 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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