yjwht 发表于 2025-4-7 11:21:28

zhangkui9070 发表于 2025-4-7 07:29
题目有问题,既然需要这么复杂的推理,甲乙为何简单几句对话的时间就知道答案了?

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

;返回两位数n的甲乙值
(defun tt()
(setq n 10 list2 nil)

(while (< n 100)
    (setq list2 (cons (list n (tt1 n) (tt2 n)) list2))
    (setq n (1+ n))
)
(setq list2 (reverse list2))

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

(princ)
)

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

wakin20 发表于 2025-4-7 11:35:55

本帖最后由 wakin20 于 2025-4-7 12:53 编辑

铃声末响春日暖 发表于 2025-4-7 00:43
分析一下:

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

乙:我知道这个数是多少了!
到這兒推理都是正確的。
但最后一句:甲:我也知道了!應該有問題。
如果b=2、14、17,乙也能確定數字,但甲不行。
(由於甲的裝b,導致自己不能推導出數字是他活該。他是知道a的,a值能直接判斷出數字的奇偶,爲什麼不明說:我能確定是奇數(如果a=2或3),或者:我能確定是偶數(如果a=8或10或12)。明說會讓乙幫他排除掉所有偶數或奇數。b要是等於2或14或17,甲手握a=8他能知道啥?甲要是說:我能確定是偶數(讓乙幫他排除掉a=2)。那乙推理到了30,甲也可以。或者乙最後提示一下甲:你也可以確定這個數了(提醒甲我的b值不在a=2裏)。現在則不行)


页: 1 [2]
查看完整版本: 数学逻辑推理题