鱼C论坛

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

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

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

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

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

x
图片:

                               
登录/注册后可看大图

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

def Condition_2(_2, _3, _5, _6, _7, _9, _10):
    if _3 == _5 and _2 != _7 and _5 != _6 and _9 != _10:
        return "A"
    elif _2 == _7 and _3 != _5 and _5 != _6 and _9 != _10:
        return "B"
    elif _5 == _6 and _3 != _5 and _2 != _7 and _9 != _10:
        return "C"
    elif _9 == _10 and _3 != _5 and _2 != _7 and _5 != _6:
        return "D"
    else: return False

def Condition_3(_3, *arr):
    if sum([each == _3 for each in list(arr)]) == 2:
        return "A"
    elif sum([each == _3 for each in list(arr)]) == 5:
        return "B"
    elif sum([each == _3 for each in list(arr)]) == 4:
        return "C"
    elif sum([each == _3 for each in list(arr)]) == 6:
        return "D"
    else: return False

Condition_4 = lambda answer: answer
Condition_5 = Condition_1
Condition_6 = Condition_4

def Condition_7(*arr):
    arr = list(arr)
    res = 0
    for i in range(9):
        if arr[i] == arr[i + 1]:
            res += 1
    D = "DBA_C"
    return D[res] if res in [2, 1, 4, 0] else False

def Condition_8(*arr):
    if 'A' not in arr:
        return "A"
    elif 'B' not in arr:
        return "B"
    elif 'C' not in arr:
        return "C"
    elif 'D' not in arr:
        return "D"
    else: return False

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

def Condition_10(_3, _4, _9, _10):
    if _3 != _4 and (_4 == _9 == _10):
        return "A"
    elif _3 != _4 and (_3 == _9 == _10):
        return "B"
    elif _9 != _4 and (_3 == _4 == _10):
        return "C"
    elif _10 != _4 and (_3 == _4 == _9):
        return "D"
    else: return False

for _1 in "ABCD":
    for _2 in "ABCD":
        for _3 in "ABCD":
            for _4 in "ABCD":
                for _5 in "ABCD":
                    for _6 in "ABCD":
                        for _7 in "ABCD":
                            for _8 in "ABCD":
                                for _9 in "ABCD":
                                    for _10 in "ABCD":
                                        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):
                                            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 | 显示全部楼层    本楼为最佳答案   
这题有解吗?我试了好像无解,也可能我的代码有错吧
def Condition_1(_1, _8, _2, _4, _5):
    if _1 == _8 and _1 not in [_2, _4, _5]:
        return "A"
    elif _1 == _2 and _1 not in [_8, _4, _5]:
        return "B"
    elif _1 == _4 and _1 not in [_8, _2, _5]:
        return "C"
    elif _1 == _5 and _1 not in [_8, _2, _4]:
        return "D"
    else: return False

def Condition_2(_2, _3, _5, _6, _7, _9, _10):
    if _3 == _5 and _2 != _7 and _5 != _6 and _9 != _10:
        return "A"
    elif _2 == _7 and _3 != _5 and _5 != _6 and _9 != _10:
        return "B"
    elif _5 == _6 and _3 != _5 and _2 != _7 and _9 != _10:
        return "C"
    elif _9 == _10 and _3 != _5 and _2 != _7 and _5 != _6:
        return "D"
    else: return False

def Condition_3(_3, *arr):
    if sum([each == _3 for each in list(arr)]) == 2:
        return "A"
    elif sum([each == _3 for each in list(arr)]) == 5:
        return "B"
    elif sum([each == _3 for each in list(arr)]) == 4:
        return "C"
    elif sum([each == _3 for each in list(arr)]) == 6:
        return "D"
    else: return False

Condition_4 = lambda answer: answer
Condition_5 = Condition_1
Condition_6 = Condition_4

def Condition_7(*arr):
    arr = list(arr)
    res = 0
    for i in range(9):
        if arr[i] == arr[i + 1]:
            res += 1
    D = "DBA_C"
    return D[res] if res in [2, 1, 4, 0] else False

def Condition_8(*arr):
    if 'A' not in arr:
        return "A"
    elif 'B' not in arr:
        return "B"
    elif 'C' not in arr:
        return "C"
    elif 'D' not in arr:
        return "D"
    else: return False

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

def Condition_10(_3, _4, _9, _10):
    if _3 != _4 and (_4 == _9 == _10):
        return "A"
    elif _3 != _4 and (_3 == _9 == _10):
        return "B"
    elif _9 != _4 and (_3 == _4 == _10):
        return "C"
    elif _10 != _4 and (_3 == _4 == _9):
        return "D"
    else: return False

for _1 in "ABCD":
    for _2 in "ABCD":
        for _3 in "ABCD":
            for _4 in "ABCD":
                for _5 in "ABCD":
                    for _6 in "ABCD":
                        for _7 in "ABCD":
                            for _8 in "ABCD":
                                for _9 in "ABCD":
                                    for _10 in "ABCD":
                                        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):
                                            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-11-15 20:10

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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