基于deepseek的某答题领红包小程序答案推理

查看 25|回复 2
作者:418   
title: 包了个包题目答案推理
published: 2025-01-28
category: 微信小程序
tags: [Python]
description: 仅通过抓包实现,如有更好方法欢迎交流
draft: false

搜索题目关键字,无结果。使用中文转unicode搜索后,有结果。返回json如下
{
        "code": 0,
        "msg": "成功",
        "time": "1738055015354",
        "data": {
                "bgm": "https:\/\/lw-res.wxatech.com\/blgb\/yang\/BGM_2.mp3",
                "clearSuccess": "https:\/\/lw-res.wxatech.com\/blgb\/yang\/clear_2.mp3",
                "clickBtn": "https:\/\/lw-res.wxatech.com\/blgb\/yang\/click_2.mp3",
                "cosHost": "https:\/\/lw-res.wxatech.com\/",
                "detailStyle": "\/0",
                "grantList": [{
                        "avatarUrl": "http:\/\/openimg.bleege.com\/wxopen\/avatar\/250128\/883f8c74349a41e49e6ee6d65e557c72",
                        "gender": 0,
                        "likeStatus": 0,
                        "nickName": "XÐ",
                        "rewardId": "1170922",
                        "stick": false
                }, {
                        "avatarUrl": "http:\/\/openimg.bleege.com\/wxopen\/avatar\/250128\/e84eae02f7ad4102a4eb6f5f5bc37ce6",
                        "gender": 0,
                        "likeStatus": 0,
                        "nickName": "想吃太空人的喜之郎",
                        "rewardId": "1170922",
                        "stick": false
                }, {
                        "avatarUrl": "http:\/\/openimg.bleege.com\/wxopen\/avatar\/250128\/88503ab978cd4b3eb1ea92b48bd8eebb",
                        "gender": 0,
                        "likeStatus": 0,
                        "nickName": "Self",
                        "rewardId": "1170922",
                        "stick": false
                }],
                "isFollow": false,
                "lotteryRecord": {
                        "advertisements": [],
                        "avatarUrl": "http:\/\/openimg.bleege.com\/wxopen\/avatar\/250128\/747deaeccba64400aec643505577d085",
                        "canShare": true,
                        "checkTime": "2025-01-29 15:24:19",
                        "createTime": "2025-01-28 15:24:14",
                        "extraData": {
                                "finishTime": 48,
                                "lotteryProb": 100.0,
                                "totalNum": 6,
                                "type": 1
                        },
                        "gender": 0,
                        "grantNum": 3,
                        "lotteryNo": "3e60f1349e834dd0",
                        "lotteryStatus": 2,
                        "lotteryType": 0,
                        "nickName": "Fetyloi*",
                        "partNum": 7,
                        "playRule": {
                                "allowWrongNum": 8,
                                "canViewAnswer": 2,
                                "qaList": [{
                                        "correctCount": 0,
                                        "options": {
                                                "data": ["甜的东西", "辣的东西", "酸的东西"]
                                        },
                                        "question": "我更爱吃",
                                        "sort": 0,
                                        "sysQaId": "10698"
                                }, {
                                        "correctCount": 0,
                                        "options": {
                                                "data": ["身高", "头发", "脸"]
                                        },
                                        "question": "我最不喜欢别人说我什么?",
                                        "sort": 1,
                                        "sysQaId": "10507"
                                }, {
                                        "correctCount": 0,
                                        "options": {
                                                "data": ["有", "没有"]
                                        },
                                        "question": "我有过交友不慎的经历吗",
                                        "sort": 2,
                                        "sysQaId": "10813"
                                }, {
                                        "correctCount": 0,
                                        "options": {
                                                "data": ["是的", "并没有"]
                                        },
                                        "question": "随着年龄的增长,我对另一半的要求是否越来越低",
                                        "sort": 3,
                                        "sysQaId": "10758"
                                }, {
                                        "correctCount": 0,
                                        "options": {
                                                "data": ["(>^ω^
手动作答完毕,出结果,抓包


往下扒拉,前端可以看到别的用户的正确率
{
        "code": 0,
        "msg": "\u6210\u529F",
        "time": "1738055356372",
        "data": {
                "cosHost": "https:\/\/lw-res.wxatech.com\/",
                "data": [{
                        "avatarUrl": "http:\/\/openimg.bleege.com\/wxopen\/avatar\/250128\/f8ccb5b4802e45d0950dcf729c739fe4\/0",
                        "grabData": {
                                "ageFlag": 1,
                                "beautyFlag": 1,
                                "canBeautify": 0,
                                "canViewAnswer": 2,
                                "catchNum": 0,
                                "correctNum": 6,
                                "expressionFlag": 1,
                                "genderFlag": 1,
                                "glassesFlag": 1,
                                "lit": 0,
                                "maskFlag": 1,
                                "maxCombo": 0,
                                "score": 0,
                                "selectAnswer": [0, 0, 0, 0, 0, 3, 2, 2, 0, 0]
                        },
                        "id": "1949808",
                        "likeNum": 0,
                        "likeStatus": 0,
                        "nickName": "44",
                        "playType": 3,
                        "rewardStatus": 0,
                        "status": 0,
                        "stick": false,
                        "tryTime": 1,
                        "updateTime": "2025-01-28 17:09:16",
                        "userId": "1748075"
                }, {
                        "amount": 5.01,
                        "avatarUrl": "http:\/\/openimg.bleege.com\/wxopen\/avatar\/250128\/e84eae02f7ad4102a4eb6f5f5bc37ce6",
                        "comment": "\u8001\u677F\u5927\u6C14\uD83D\uDC4D\uD83C\uDFFB\uD83D\uDC4D\uD83C\uDFFB\u5E0C\u671B\u9AD8\u8003\u7684\u65F6\u5019\u6211\u4E5F\u80FD\u6709\u8FD9\u79CD\u8499\u9898\u8FD0\u6C14\uD83D\uDC4D\uD83C\uDFFB\uD83D\uDC4D\uD83C\uDFFB\uD83D\uDC4D\uD83C\uDFFB",
                        "grabData": {
                                "ageFlag": 1,
                                "beautyFlag": 1,
                                "canBeautify": 0,
                                "canViewAnswer": 2,
                                "catchNum": 0,
                                "correctNum": 8,
                                "expressionFlag": 1,
                                "genderFlag": 1,
                                "glassesFlag": 1,
                                "lit": 0,
                                "maskFlag": 1,
                                "maxCombo": 0,
                                "score": 0,
                                "selectAnswer": [0, 0, 1, 1, 0, 2, 0, 1, 0, 1]
                        },
                        "grantStatus": 1,
                        "id": "1948029",
                        "likeNum": 0,
                        "likeStatus": 0,
                        "nickName": "\u60F3\u5403\u592A\u7A7A\u4EBA\u7684\u559C\u4E4B\u90CE",
                        "playType": 3,
                        "rewardId": "1170922",
                        "rewardStatus": 1,
                        "rewardTitle": "\u62FC\u624B\u6C14\u7EA2\u5305",
                        "status": 1,
                        "stick": false,
                        "tryTime": 1,
                        "updateTime": "2025-01-28 15:32:12",
                        "userId": "1746397"
                }, {
                        "amount": 2.43,
                        "avatarUrl": "http:\/\/openimg.bleege.com\/wxopen\/avatar\/250128\/88503ab978cd4b3eb1ea92b48bd8eebb",
                        "grabData": {
                                "ageFlag": 1,
                                "beautyFlag": 1,
                                "canBeautify": 0,
                                "canViewAnswer": 2,
                                "catchNum": 0,
                                "correctNum": 8,
                                "expressionFlag": 1,
                                "genderFlag": 1,
                                "glassesFlag": 1,
                                "lit": 0,
                                "maskFlag": 1,
                                "maxCombo": 0,
                                "score": 0,
                                "selectAnswer": [1, 0, 0, 1, 0, 1, 0, 1, 0, 1]
                        },
                        "grantStatus": 1,
                        "id": "1947994",
                        "likeNum": 0,
                        "likeStatus": 0,
                        "nickName": "Self",
                        "playType": 3,
                        "rewardId": "1170922",
                        "rewardStatus": 1,
                        "rewardTitle": "\u62FC\u624B\u6C14\u7EA2\u5305",
                        "status": 1,
                        "stick": false,
                        "tryTime": 1,
                        "updateTime": "2025-01-28 15:30:04",
                        "userId": "1746350"
                }, {
                        "amount": 1.32,
                        "avatarUrl": "http:\/\/openimg.bleege.com\/wxopen\/avatar\/250128\/883f8c74349a41e49e6ee6d65e557c72",
                        "grabData": {
                                "ageFlag": 1,
                                "beautyFlag": 1,
                                "canBeautify": 0,
                                "canViewAnswer": 2,
                                "catchNum": 0,
                                "correctNum": 8,
                                "expressionFlag": 1,
                                "genderFlag": 1,
                                "glassesFlag": 1,
                                "lit": 0,
                                "maskFlag": 1,
                                "maxCombo": 0,
                                "score": 0,
                                "selectAnswer": [1, 0, 0, 1, 0, 3, 2, 1, 0, 1]
                        },
                        "grantStatus": 1,
                        "id": "1948949",
                        "likeNum": 0,
                        "likeStatus": 0,
                        "nickName": "X\u00D0",
                        "playType": 3,
                        "rewardId": "1170922",
                        "rewardStatus": 1,
                        "rewardTitle": "\u62FC\u624B\u6C14\u7EA2\u5305",
                        "status": 1,
                        "stick": false,
                        "tryTime": 1,
                        "updateTime": "2025-01-28 16:27:29",
                        "userId": "1747189"
                }, {
                        "avatarUrl": "http:\/\/openimg.bleege.com\/wxopen\/avatar\/250128\/a6bfd20ce8904576a6c1d936dd00e1a5",
                        "grabData": {
                                "ageFlag": 1,
                                "beautyFlag": 1,
                                "canBeautify": 0,
                                "canViewAnswer": 2,
                                "catchNum": 0,
                                "correctNum": 7,
                                "expressionFlag": 1,
                                "genderFlag": 1,
                                "glassesFlag": 1,
                                "lit": 0,
                                "maskFlag": 1,
                                "maxCombo": 0,
                                "score": 0,
                                "selectAnswer": [0, 2, 0, 0, 1, 3, 0, 1, 0, 1]
                        },
                        "id": "1948452",
                        "likeNum": 0,
                        "likeStatus": 0,
                        "nickName": ":P",
                        "playType": 3,
                        "rewardStatus": 0,
                        "status": 0,
                        "stick": false,
                        "tryTime": 1,
                        "updateTime": "2025-01-28 16:00:50",
                        "userId": "1746893"
                }, {
                        "avatarUrl": "http:\/\/openimg.bleege.com\/wxopen\/avatar\/250128\/290c6416d972442293d24de8f64e46a4",
                        "grabData": {
                                "ageFlag": 1,
                                "beautyFlag": 1,
                                "canBeautify": 0,
                                "canViewAnswer": 2,
                                "catchNum": 0,
                                "correctNum": 7,
                                "expressionFlag": 1,
                                "genderFlag": 1,
                                "glassesFlag": 1,
                                "lit": 0,
                                "maskFlag": 1,
                                "maxCombo": 0,
                                "score": 0,
                                "selectAnswer": [1, 0, 0, 1, 0, 2, 0, 2, 0, 1]
                        },
                        "id": "1948337",
                        "likeNum": 0,
                        "likeStatus": 0,
                        "nickName": "\u552F\u552F",
                        "playType": 3,
                        "rewardStatus": 0,
                        "status": 0,
                        "stick": false,
                        "tryTime": 1,
                        "updateTime": "2025-01-28 15:54:45",
                        "userId": "1746760"
                }, {
                        "avatarUrl": "http:\/\/openimg.bleege.com\/wxopen\/avatar\/250128\/ab2f2e8a9e6848bd88df55d8e9b43208",
                        "grabData": {
                                "ageFlag": 1,
                                "beautyFlag": 1,
                                "canBeautify": 0,
                                "canViewAnswer": 2,
                                "catchNum": 0,
                                "correctNum": 6,
                                "expressionFlag": 1,
                                "genderFlag": 1,
                                "glassesFlag": 1,
                                "lit": 0,
                                "maskFlag": 1,
                                "maxCombo": 0,
                                "score": 0,
                                "selectAnswer": [0, 0, 0, 0, 0, 3, 2, 0, 0, 0]
                        },
                        "id": "1948195",
                        "likeNum": 0,
                        "likeStatus": 0,
                        "nickName": "o",
                        "playType": 3,
                        "rewardStatus": 0,
                        "status": 0,
                        "stick": false,
                        "tryTime": 1,
                        "updateTime": "2025-01-28 15:43:45",
                        "userId": "1746323"
                }, {
                        "avatarUrl": "http:\/\/openimg.bleege.com\/wxopen\/avatar\/250128\/998ff72e3abf4ad9a1517530556e36df",
                        "grabData": {
                                "ageFlag": 1,
                                "beautyFlag": 1,
                                "canBeautify": 0,
                                "canViewAnswer": 2,
                                "catchNum": 0,
                                "correctNum": 6,
                                "expressionFlag": 1,
                                "genderFlag": 1,
                                "glassesFlag": 1,
                                "lit": 0,
                                "maskFlag": 1,
                                "maxCombo": 0,
                                "score": 0,
                                "selectAnswer": [0, 1, 0, 1, 0, 2, 2, 1, 0, 0]
                        },
                        "id": "1948102",
                        "likeNum": 0,
                        "likeStatus": 0,
                        "nickName": "\u561F\u561F\u561F\u561F\uFF5E",
                        "playType": 3,
                        "rewardStatus": 0,
                        "status": 0,
                        "stick": false,
                        "tryTime": 1,
                        "updateTime": "2025-01-28 15:37:09",
                        "userId": "1746488"
                }],
                "hasMore": false,
                "isCreator": false,
                "lotteryStatus": 2,
                "pageNum": 1,
                "pageSize": 50,
                "partNum": 0
        }
}
找个线上的unicode转中文,得到结果,观察发现,nickName对应其它用户,selectAnswer是每个用户选择的选项。
由于数据不是很多,只有8个用户的作答情况,遂手动整理:
user_answer_list = [
    {
        "selectAnswer": [0, 0, 0, 0, 0, 3, 2, 2, 0, 0],
        "accuracy_rate": 0.6
    },
    {
        "selectAnswer": [0, 0, 1, 1, 0, 2, 0, 1, 0, 1],
        "accuracy_rate": 0.8
    },
    {
        "selectAnswer": [1, 0, 0, 1, 0, 1, 0, 1, 0, 1],
        "accuracy_rate": 0.8
    },
    {
        "selectAnswer": [1, 0, 0, 1, 0, 3, 2, 1, 0, 1],
        "accuracy_rate": 0.8
    },
    {
        "selectAnswer": [0, 2, 0, 0, 1, 3, 0, 1, 0, 1],
        "accuracy_rate": 0.7
    },
    {
        "selectAnswer": [1, 0, 0, 1, 0, 2, 0, 2, 0, 1],
        "accuracy_rate": 0.7
    },
    {
        "selectAnswer": [0, 0, 0, 0, 0, 3, 2, 0, 0, 0],
        "accuracy_rate": 0.6
    },
    {
        "selectAnswer": [0, 1, 0, 1, 0, 2, 2, 1, 0, 0],
        "accuracy_rate": 0.6
    }
]
丢给deepseek
qaList 中,有10题。question表示题目,options里的data表示选项。
user_answer_list 中一共有8个用户的答题情况,对应它们的正确率。
selectAnswer分别表示10题该用户的选选项下标,比如,0表示选择data里第零个元素,1表示选择了data里第二个元素。
我希望你从中推理出这10题的正确选项,并给出推理过程或程序
根据用户提供的答题数据,我们可以通过统计每个选项的加权选择次数来推断正确答案。具体步骤如下:
[ol]
  • 计算每个选项的权重总和:将每个用户的选择按正确率加权累加(正确率越高,该用户的答案权重越大)。
  • 选择最高权重的选项:对每道题,选权重总和最高的选项作为正确答案。
    [/ol]
    以下是实现代码和结果:
    qaList = [...]  # 这里替换为你的qaList数据
    user_answer_list = [...]  # 这里替换为你的user_answer_list数据
    # 计算每道题的正确选项
    correct_answers = []
    for question_idx in range(10):
        option_weights = {}
        for user in user_answer_list:
            selected = user["selectAnswer"][question_idx]
            weight = user["accuracy_rate"]
            if selected not in option_weights:
                option_weights[selected] = 0.0
            option_weights[selected] += weight
        # 取权重最高的选项
        max_weight = max(option_weights.values())
        correct_answer = [k for k, v in option_weights.items() if v == max_weight][0]
        correct_answers.append(correct_answer)
    # 输出结果
    for idx, ans_idx in enumerate(correct_answers):
        question = qaList[idx]["question"]
        options = qaList[idx]["options"]["data"]
        print(f"题目{idx}: {question}")
        print(f"  正确选项: [{ans_idx}] {options[ans_idx]}\n")
    推理结果
    以下是每道题的正确答案及选项内容:
    [ol]

  • 题目0: 我更爱吃
    正确选项: [0] 甜的东西
    推理: 高正确率用户(0.8)多数选择 甜的东西,权重总和最高。

  • 题目1: 我最不喜欢别人说我什么?
    正确选项: [0] 身高
    推理: 绝大多数用户选择 身高,高权重用户集中在此选项。

  • 题目2: 我有过交友不慎的经历吗
    正确选项: [0] 有
    推理: 高正确率用户(0.8)多数选择 有,权重累计更高。

  • 题目3: 随着年龄的增长,我对另一半的要求是否越来越低
    正确选项: [1] 并没有
    推理: 高正确率用户(0.8)多数选择 并没有,权重明显领先。

  • 题目4: 猫跟狗,我更喜欢哪一种?
    正确选项: [0] (>^ω^
    推理: 绝大多数用户选择 喵,仅1个低权重用户选择狗。

  • 题目5: 微信里与人聊天,我最讨厌哪种行为?
    正确选项: [3] 很久才回消息
    推理: 高权重用户(0.8)选择此选项,权重总和最高。

  • 题目6: 如果我和你陷入了很深的误会,我会用什么方法解释?
    正确选项: [0] 当面私聊
    推理: 高正确率用户(0.8)集中选择 当面私聊。

  • 题目7: 如果男神/女神跟我说话了,我会是怎样的表情?
    正确选项: [1] 喜笑颜开
    推理: 权重统计中 喜笑颜开 和 花痴 接近,但高权重用户更倾向前者。

  • 题目8: 手机打字我的是什么模式
    正确选项: [0] 26字
    推理: 所有用户一致选择 26字,权重绝对领先。

  • 题目9: 如果我现在只有一百块钱,我会
    正确选项: [1] 买点便宜易饱的食物,同时去找工作赚钱
    推理: 高正确率用户(0.8)多数选择此选项,权重累计最高。
    [/ol]
    关键逻辑说明
  • 权重计算:用户的正确率越高,其选择的选项权重越大。例如,正确率0.8的用户的选择权重是0.6用户的1.33倍。
  • 统计依据:假设高正确率用户更可能在所有题目中选择正确答案,因此他们的选择对最终结果影响更大。

    战绩可查

    deepseek推理过程
    用户提供了qaList,里面有10个问题,每个问题有选项。而user_answer_list里有8个用户的回答,每个用户对10题都选了答案,并且有一个正确率。正确率是0.6到0.8不等,说明每个用户有6到8题正确。
    我的目标是找出每道题的正确选项,也就是哪个选项的索引被正确用户选中的次数最多。比如,对于某道题,正确用户(正确率较高的用户)更可能选择了正确答案,而错误用户可能选错了。
    首先,我需要确定哪些用户是可信的,即正确率高的用户更可能选对了大部分题目。比如,正确率为0.8的用户比0.6的更可信。但可能有些用户虽然总体正确率高,但在某些题上可能还是错的。所以可能需要综合考虑所有用户的选择,尤其是正确率高的用户的答案。
    接下来,我需要为每个问题统计每个选项被选择的次数,但要根据用户的正确率进行加权。比如,正确率高的用户的答案权重更大,这样他们的选择对正确答案的影响更大。例如,正确率0.8的用户的选择比0.6的用户的更有参考价值。
    另一种方法是假设正确率高的用户的答案更可能正确,因此找出每个题目中被高正确率用户选择最多的选项作为正确答案。比如,对于每个问题,统计所有用户的选择,然后根据他们的正确率给予不同的权重,最后选权重最高的选项。
    或者,可以将用户按正确率排序,选择正确率最高的用户作为基准,但可能多个用户正确率高,需要综合他们的答案。
    具体步骤可能如下:
    [ol]
  • 对于每道题(0到9),遍历所有用户的selectAnswer中对应的答案。
  • 统计每个选项被选择的次数,但每个用户的贡献根据其正确率加权。例如,正确率0.8的用户的选择权重为0.8,而正确率0.6的权重为0.6。
  • 对于每个问题,计算每个选项的总权重,选择总权重最高的选项作为正确答案。
  • 或者,也可以简单统计所有用户的选择,但考虑正确率高的用户更可能正确,因此他们的答案更可信。
    [/ol]
    但可能存在一个问题:如果某个正确率高的用户在某个题上选错了,而其他正确率低的用户选对了,但这种方法可能无法处理这种情况。不过,总体而言,正确率高的用户更可能在多数题目上正确,因此他们的答案更可信。
    现在需要具体实现这个逻辑。例如,对于每道题i,遍历每个用户,取该用户在第i题的选择,乘以该用户的正确率(或者可能需要进行其他处理,比如将正确率视为用户在该题正确的概率?或者可能更简单地将正确率高的用户的选择视为更可能正确)。
    或者,可以认为用户的正确率是其所有题目正确的比例,所以每个用户有正确率*10题的正确数量。例如,正确率0.8的用户有8题正确,2题错误。所以,对于每道题,用户的选择可能是正确的概率为0.8的概率正确,或者需要更复杂的处理。
    这可能比较复杂,或许采用加权统计的方式更可行。例如,每个选项的得分是该用户正确率的累加,当用户选择了该选项。最后,得分最高的选项即为正确答案。
    编写代码来实现这个逻辑:
  • 遍历每个问题(0-9)
  • 对于每个问题,创建一个字典来统计每个选项的权重总和
  • 遍历每个用户
  • 获取用户在该题的选择(比如题目0的选择是selectAnswer[0])
  • 将该用户的accuracy_rate加到该选项的权重总和中
  • 最后,对于该题,选权重总和最高的选项作为正确答案

    这样处理的话,每个用户的选择对该题的贡献是其正确率,正确率高的用户的选择会被更重视。如果正确答案是某个选项,那么正确率高的用户更可能选择了它,因此他们的权重累加会更高。
    例如,假设题目0的正确选项是0,那么正确率高的用户可能大多选了0,而正确率低的用户可能选错。所以,选项0的总权重会是0.8+0.8+0.7+0.6+...等,而其他选项的权重可能较低。
    编写代码的大致步骤:
    [ol]

  • 初始化一个结果列表,保存每个题的正确答案索引。

  • 对每个题 i(0到9):
    a. 创建一个字典,记录选项索引对应的总权重。
    b. 遍历每个用户:
    ​        i. 获取用户在该题的选择 ans = user['selectAnswer']
    ​        ii. 获取用户的正确率 rate = user['accuracy_rate']
    ​        iii. 将rate加到字典中ans对应的键上。
    c. 找出字典中总权重最高的选项,作为该题的正确答案。
    d. 如果有多个选项的权重相同且最高,可能需要处理,但假设数据中不会出现这种情况。

  • 输出每题的正确答案及对应的权重统计。
    [/ol]
    验证这个方法的合理性
    例如,看题目0的用户选择:
    选项0的总权重是0.6+0.8+0.7+0.6+0.6=3.3(用户0、1、4、6、7)
    选项1的总权重是0.8+0.8+0.7=2.3(用户2、3、5)
    所以选项0的权重更高,正确选项是0。而实际可能正确选项是0吗?因为题目0的问题“我更爱吃”,选项是甜、辣、酸。假设正确回答是甜,即选项0,那么正确用户(正确率高的用户1、2、3)中,用户1选0(正确率0.8),用户2选1(0.8),用户3选1(0.8),这样他们的选择是否矛盾?
    这可能需要更复杂的计算,但可能难以手动处理。因此,可能用户希望使用简单的加权统计方法,即每个用户的答案的权重是其正确率,正确选项是总权重最高的那个。虽然这可能不完美,但可能给出合理的结果。
    推理总结
    通过统计每个选项被用户选择的权重(用户的正确率作为权重),累加后选择最高权重的选项作为正确答案。这种方法假设正确率高的用户更可能在各个题目上选择正确选项,因此他们的选择具有更高的权重。虽然可能存在个别题目错误,但整体上能够推断出正确答案。
    [ol]

  • 数据准备
  • 题目数据:qaList 包含10个问题,每个问题有题目、选项列表(options.data)和唯一标识。
  • 用户答案:user_answer_list 包含8个用户的答题记录,每个用户提供10题的选项索引(selectAnswer)和正确率(accuracy_rate)。

  • 权重累加原则
  • 核心假设:正确率高的用户更可能选择正确答案,因此他们的选择应赋予更高权重。
  • 公式:对每题的每个选项,计算所有用户选择该选项的权重总和,权重为用户正确率。

  • 逐题统计过程
  • 遍历每道题(共10题):
  • 初始化一个字典 option_weights,记录该题每个选项的累计权重。
  • 遍历每个用户
  • 获取该用户在此题的选项索引 selected。
  • 将该用户的正确率 accuracy_rate 累加到 option_weights[selected]。
  • 找出累计权重最高的选项,作为该题的正确答案。


  • 处理特殊情况
  • 平局情况:若多个选项权重相同且最高,默认取第一个出现的选项(代码中未明确处理,但数据中未出现此情况)。
  • 索引越界:假设用户提供的 selectAnswer 下标均有效(如选项数≥下标+1)。

  • 结果输出
  • 对于每道题,输出题目内容、正确选项的下标及对应选项文本。

    [/ol]
    示例验证(以第5题为例):
  • 题目:微信里与人聊天,我最讨厌哪种行为?
  • 选项:["发超长语音", "只抢红包从来不发", "只发“在吗”不说正事", "很久才回消息"]
  • 用户选择统计
  • 用户0选3(正确率0.6 → 权重+0.6)
  • 用户1选2(正确率0.8 → 权重+0.8)
  • 用户2选1(正确率0.8 → 权重+0.8)
  • 用户3选3(正确率0.8 → 权重+0.8)
  • 用户4选3(正确率0.7 → 权重+0.7)
  • 用户5选2(正确率0.7 → 权重+0.7)
  • 用户6选3(正确率0.6 → 权重+0.6)
  • 用户7选2(正确率0.6 → 权重+0.6)
  • 权重计算
  • 选项0:无选择 → 0
  • 选项1:用户2 → 0.8
  • 选项2:用户1、5、7 → 0.8+0.7+0.6=2.1
  • 选项3:用户0、3、4、6 → 0.6+0.8+0.7+0.6=2.7
  • 正确选项:选项3(权重2.7最高)

    最终结论:通过加权统计,高正确率用户的选择集中决定了每道题的正确答案,最终输出结果反映了多数高权重用户的共识。
    结语
    怀疑过是否是前端验证,不过粗略地看过每一个请求后好像并没有找到判断的地方。

    用户, 权重

  • cullenlin123   

    厉害,没看懂,这个软件我没注册上呢,顺便问下能一键生成ppt吗?
    zdmin   

    厉害,虽然没看懂
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部