鱼C论坛

 找回密码
 立即注册
查看: 2159|回复: 12

[已解决]这个推理题目怎么用python做?

[复制链接]
发表于 2022-11-26 11:37:28 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

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

x
图片:

                               
登录/注册后可看大图

请教大佬
最佳答案
2022-11-26 17:17:33
这题有解吗?我试了好像无解,也可能我的代码有错吧
  1. def Condition_1(_1, _8, _2, _4, _5):
  2.     if _1 == _8 and _1 not in [_2, _4, _5]:
  3.         return "A"
  4.     elif _1 == _2 and _1 not in [_8, _4, _5]:
  5.         return "B"
  6.     elif _1 == _4 and _1 not in [_8, _2, _5]:
  7.         return "C"
  8.     elif _1 == _5 and _1 not in [_8, _2, _4]:
  9.         return "D"
  10.     else: return False

  11. def Condition_2(_2, _3, _5, _6, _7, _9, _10):
  12.     if _3 == _5 and _2 != _7 and _5 != _6 and _9 != _10:
  13.         return "A"
  14.     elif _2 == _7 and _3 != _5 and _5 != _6 and _9 != _10:
  15.         return "B"
  16.     elif _5 == _6 and _3 != _5 and _2 != _7 and _9 != _10:
  17.         return "C"
  18.     elif _9 == _10 and _3 != _5 and _2 != _7 and _5 != _6:
  19.         return "D"
  20.     else: return False

  21. def Condition_3(_3, *arr):
  22.     if sum([each == _3 for each in list(arr)]) == 2:
  23.         return "A"
  24.     elif sum([each == _3 for each in list(arr)]) == 5:
  25.         return "B"
  26.     elif sum([each == _3 for each in list(arr)]) == 4:
  27.         return "C"
  28.     elif sum([each == _3 for each in list(arr)]) == 6:
  29.         return "D"
  30.     else: return False

  31. Condition_4 = lambda answer: answer
  32. Condition_5 = Condition_1
  33. Condition_6 = Condition_4

  34. def Condition_7(*arr):
  35.     arr = list(arr)
  36.     res = 0
  37.     for i in range(9):
  38.         if arr[i] == arr[i + 1]:
  39.             res += 1
  40.     D = "DBA_C"
  41.     return D[res] if res in [2, 1, 4, 0] else False

  42. def Condition_8(*arr):
  43.     if 'A' not in arr:
  44.         return "A"
  45.     elif 'B' not in arr:
  46.         return "B"
  47.     elif 'C' not in arr:
  48.         return "C"
  49.     elif 'D' not in arr:
  50.         return "D"
  51.     else: return False

  52. def Condition_9(*arr):
  53.     res = 0
  54.     for answer in "ABCD":
  55.         if list(arr).count(answer) < 4:
  56.             res += 1
  57.     D = "_ABCD"
  58.     return D[res] if res in [1, 2, 3, 4] else False

  59. def Condition_10(_3, _4, _9, _10):
  60.     if _3 != _4 and (_4 == _9 == _10):
  61.         return "A"
  62.     elif _3 != _4 and (_3 == _9 == _10):
  63.         return "B"
  64.     elif _9 != _4 and (_3 == _4 == _10):
  65.         return "C"
  66.     elif _10 != _4 and (_3 == _4 == _9):
  67.         return "D"
  68.     else: return False

  69. for _1 in "ABCD":
  70.     for _2 in "ABCD":
  71.         for _3 in "ABCD":
  72.             for _4 in "ABCD":
  73.                 for _5 in "ABCD":
  74.                     for _6 in "ABCD":
  75.                         for _7 in "ABCD":
  76.                             for _8 in "ABCD":
  77.                                 for _9 in "ABCD":
  78.                                     for _10 in "ABCD":
  79.                                         if Condition_1(_1, _8, _2, _4, _5) and Condition_2(_2, _3, _5, _6, _7, _9, _10) and Condition_3(_3) and Condition_4(Condition_2(_2, _3, _5, _6, _7, _9, _10)) and Condition_5(_5, _2, _4, _1, _10) and Condition_6(_6) and Condition_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) and Condition_8(_2, _3, _4, _5, _6) and Condition_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) and Condition_10(_3, _4, _9, _10):
  80.                                             print(Condition_1(_1, _8, _2, _4, _5), Condition_2(_2, _3, _5, _6, _7, _9, _10), Condition_3(_3), Condition_4(Condition_2(_2, _3, _5, _6, _7, _9, _10)), Condition_5(_5, _2, _4, _1, _10), Condition_6(_6), Condition_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10), Condition_8(_2, _3, _4, _5, _6), Condition_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10), Condition_10(_3, _4, _9, _10))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-11-26 11:43:38 | 显示全部楼层
http删除s://fi删除shc.co删除m.cn/thr删除ead-2212删除78-1-1.ht删除ml
还不能像这样发了?
那你上面的文字是怎么发出来的?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-26 11:43:55 | 显示全部楼层
<iframe src="//player.bilibili.com/player.html?aid=732823594&bvid=BV1iD4y1s7yW&cid=896295141&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-11-26 11:52:16 | 显示全部楼层
人造人 发表于 2022-11-26 11:43
http删除s://fi删除shc.co删除m.cn/thr删除ead-2212删除78-1-1.ht删除ml
还不能像这样发了?
那你上面的 ...

好像真不行
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-26 11:54:53 | 显示全部楼层
你的回复触发审核了,等一等吧,一会审核通过了就发出来了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-26 17:17:33 | 显示全部楼层    本楼为最佳答案   
这题有解吗?我试了好像无解,也可能我的代码有错吧
  1. def Condition_1(_1, _8, _2, _4, _5):
  2.     if _1 == _8 and _1 not in [_2, _4, _5]:
  3.         return "A"
  4.     elif _1 == _2 and _1 not in [_8, _4, _5]:
  5.         return "B"
  6.     elif _1 == _4 and _1 not in [_8, _2, _5]:
  7.         return "C"
  8.     elif _1 == _5 and _1 not in [_8, _2, _4]:
  9.         return "D"
  10.     else: return False

  11. def Condition_2(_2, _3, _5, _6, _7, _9, _10):
  12.     if _3 == _5 and _2 != _7 and _5 != _6 and _9 != _10:
  13.         return "A"
  14.     elif _2 == _7 and _3 != _5 and _5 != _6 and _9 != _10:
  15.         return "B"
  16.     elif _5 == _6 and _3 != _5 and _2 != _7 and _9 != _10:
  17.         return "C"
  18.     elif _9 == _10 and _3 != _5 and _2 != _7 and _5 != _6:
  19.         return "D"
  20.     else: return False

  21. def Condition_3(_3, *arr):
  22.     if sum([each == _3 for each in list(arr)]) == 2:
  23.         return "A"
  24.     elif sum([each == _3 for each in list(arr)]) == 5:
  25.         return "B"
  26.     elif sum([each == _3 for each in list(arr)]) == 4:
  27.         return "C"
  28.     elif sum([each == _3 for each in list(arr)]) == 6:
  29.         return "D"
  30.     else: return False

  31. Condition_4 = lambda answer: answer
  32. Condition_5 = Condition_1
  33. Condition_6 = Condition_4

  34. def Condition_7(*arr):
  35.     arr = list(arr)
  36.     res = 0
  37.     for i in range(9):
  38.         if arr[i] == arr[i + 1]:
  39.             res += 1
  40.     D = "DBA_C"
  41.     return D[res] if res in [2, 1, 4, 0] else False

  42. def Condition_8(*arr):
  43.     if 'A' not in arr:
  44.         return "A"
  45.     elif 'B' not in arr:
  46.         return "B"
  47.     elif 'C' not in arr:
  48.         return "C"
  49.     elif 'D' not in arr:
  50.         return "D"
  51.     else: return False

  52. def Condition_9(*arr):
  53.     res = 0
  54.     for answer in "ABCD":
  55.         if list(arr).count(answer) < 4:
  56.             res += 1
  57.     D = "_ABCD"
  58.     return D[res] if res in [1, 2, 3, 4] else False

  59. def Condition_10(_3, _4, _9, _10):
  60.     if _3 != _4 and (_4 == _9 == _10):
  61.         return "A"
  62.     elif _3 != _4 and (_3 == _9 == _10):
  63.         return "B"
  64.     elif _9 != _4 and (_3 == _4 == _10):
  65.         return "C"
  66.     elif _10 != _4 and (_3 == _4 == _9):
  67.         return "D"
  68.     else: return False

  69. for _1 in "ABCD":
  70.     for _2 in "ABCD":
  71.         for _3 in "ABCD":
  72.             for _4 in "ABCD":
  73.                 for _5 in "ABCD":
  74.                     for _6 in "ABCD":
  75.                         for _7 in "ABCD":
  76.                             for _8 in "ABCD":
  77.                                 for _9 in "ABCD":
  78.                                     for _10 in "ABCD":
  79.                                         if Condition_1(_1, _8, _2, _4, _5) and Condition_2(_2, _3, _5, _6, _7, _9, _10) and Condition_3(_3) and Condition_4(Condition_2(_2, _3, _5, _6, _7, _9, _10)) and Condition_5(_5, _2, _4, _1, _10) and Condition_6(_6) and Condition_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) and Condition_8(_2, _3, _4, _5, _6) and Condition_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10) and Condition_10(_3, _4, _9, _10):
  80.                                             print(Condition_1(_1, _8, _2, _4, _5), Condition_2(_2, _3, _5, _6, _7, _9, _10), Condition_3(_3), Condition_4(Condition_2(_2, _3, _5, _6, _7, _9, _10)), Condition_5(_5, _2, _4, _1, _10), Condition_6(_6), Condition_7(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10), Condition_8(_2, _3, _4, _5, _6), Condition_9(_1, _2, _3, _4, _5, _6, _7, _8, _9, _10), Condition_10(_3, _4, _9, _10))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-28 15:15:33 | 显示全部楼层
傻眼貓咪 发表于 2022-11-26 17:17
这题有解吗?我试了好像无解,也可能我的代码有错吧

这么长 你也是辛苦了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-11-28 16:27:11 | 显示全部楼层
罗天才 发表于 2022-11-28 15:15
这么长 你也是辛苦了

哈哈
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-2 13:54:11 | 显示全部楼层
本帖最后由 svensun 于 2022-12-2 13:57 编辑

先问一下 这题有答案吗?
我得到了个答案,貌似通?
('A', 'B', 'C', 'C', 'D', 'C', 'B', 'A', 'C', 'D')
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-3 11:29:22 | 显示全部楼层
svensun 发表于 2022-12-2 13:54
先问一下 这题有答案吗?
我得到了个答案,貌似通?
('A', 'B', 'C', 'C', 'D', 'C', 'B', 'A', 'C', 'D' ...

有的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-3 11:35:13 | 显示全部楼层

                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-3 11:36:27 | 显示全部楼层
傻眼貓咪 发表于 2022-11-26 17:17
这题有解吗?我试了好像无解,也可能我的代码有错吧

辛苦了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-3 13:37:13 | 显示全部楼层

哈哈,可能我的代码条件函数有地方写错了,所以找不到正确解答,但大致上应该就是那样了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 08:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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