1234

ExcelHome技术论坛

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

帖子
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 248|回复: 16

[原创] 再论24点——答案计分(跟deepseek讨论一点点优化方案与SQL语句)

[复制链接]

TA的精华主题

TA的得分主题

发表于 2025-3-3 09:27 | 显示全部楼层 |阅读模式
本帖最后由 AIEO.CN 于 2025-3-3 09:31 编辑

前言
此次回归,虽然一切看淡,云淡风轻,不多谈技术,主要在休闲吧里煮茶闲聊,笑看人生,或许能给后来者一些启发感悟。

但这儿毕竟是技术论坛,一点不谈技术,未免过于矫情。想起跟deepseek也聊过些技术问题,发现它在写程序代码方面,已经远超普通码农,但在解决方案分析与SQL代码方面。似乎还有些欠缺,这可能正是爱好技术的聪明人可以继续发挥的领域。这里完整贴出一个与deepseek讨论解决方案与优化SQL代码的全过程,但愿能给此间爱好者以启发。


我们之前讨论了24点求解,第二次讨论了24点答案实质相同问题。
今天我们讨论,如果设计24点比赛,不仅比速度,还要求在限定时间内答案越多越好,怎么设计评分方案?
设计24点比赛的评分方案时,可以考虑以下几个要素:
基础分:每个正确答案获得基础分,例如1分。
速度分:根据答题速度给予额外分数,例如前10秒内答对加2分,10-20秒加1分。
多样性分:如果选手提供多个不同的正确答案,每个额外答案加0.5分。
难度分:根据题目的难度调整分数,例如较难的题目答对加1.5分。
这样设计可以综合考察速度、多样性和难度。

是不是可以这样,多人答一道题,第一个有效答案5分,第二个不同答案6分,每个加1分,以此类推,第二个人相对第一个人,得分减少1分,直到不得分,你可以理解我的描述吗?
我理解你的描述。你的方案是基于答案顺序独特性来评分,具体规则如下:
第一个有效答案得5分。
后续不同答案每增加一个,得分递增1分(即第二个得6分,第三个得7分,以此类推)。
重复答案的得分递减1分,直到不得分。
这种设计鼓励选手提供独特答案,并奖励创新性

看起来是我的描述引起歧义了,我的意思是,第几个答案指的是对用户自己而言,现在你明白了吧?
明白了,你的意思是每个选手根据自己的答题顺序和独特性来评分,而不是所有选手之间的顺序。具体规则如下:
第一个有效答案得5分。
后续不同答案每增加一个,得分递增1分(即第二个得6分,第三个得7分,以此类推)。
重复答案的得分递减1分,直到不得分。
这种设计鼓励每个选手提供更多独特答案,并奖励创新性

你这次的理解,忽略了第二个相对第一个减1分,第三个依次递减。
明白了,你的意思是每个选手根据自己的答题顺序,第一个答案得5分,第二个答案相对第一个减1分(得4分),第三个答案再减1分(得3分),以此类推,直到不得分。
规则总结
第一个有效答案得5分。
第二个答案得4分。
第三个答案得3分。
以此类推,直到不得分。
这种设计鼓励选手在限定时间内提供更多答案,同时随着答案数量的增加,得分递减。




TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-3 09:35 | 显示全部楼层
本帖最后由 AIEO.CN 于 2025-3-3 09:41 编辑

错了错了,就特定选手,越后面分数越高,但不同选手,越晚提交答案,分数递减
明白了,你的意思是:
对特定选手,越后面的不同答案得分越高(例如第一个5分,第二个6分,第三个7分,以此类推)。
对不同选手,越晚提交相同答案,得分递减(例如第一个提交得5分,第二个提交得4分,第三个提交得3分,以此类推)。
规则总结
同一选手:每多一个不同答案,得分递增1分。
不同选手:提交相同答案时,越晚提交,得分递减1分。
这种设计鼓励选手尽早提交提供更多独特答案

这下完全正确。这个方案,鼓励多答案,也鼓励答题速度,但还有问题,如果第一个选手的第三个答案,比第二个选手的第一个答案还快,体现不出来。
你说得对,这种情况下,第一个选手的第三个答案可能比第二个选手的第一个答案还快,但现有方案无法体现这种速度优势。为了更好地区分这种情况,可以在评分方案中加入速度奖励
改进方案
基础分
同一选手:每多一个不同答案,得分递增1分(第一个5分,第二个6分,第三个7分,以此类推)。
不同选手:提交相同答案时,越晚提交,得分递减1分(第一个提交得5分,第二个得4分,第三个得3分,以此类推)。
速度奖励
每个答案根据提交速度给予额外分数,例如:
前10秒内提交,加2分。
10-20秒内提交,加1分。
20秒后提交,不加分。
这样设计可以更好地区分速度答案数量,同时保留原有的独特性顺序奖励。




TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-3 11:10 | 显示全部楼层
这个不好判断,假如一个题目有四个答案,不同选手都答出来,但四个答案的次序各不相同,你的第一个答案可能是另一个人的第四个,比较乱
你说得对,如果不同选手提交的答案顺序各不相同,单纯依赖相对速度会导致评分混乱。为了解决这个问题,可以采用答案独特性提交时间的综合评分方案。
改进方案
基础分
同一选手:每多一个不同答案,得分递增1分(第一个5分,第二个6分,第三个7分,以此类推)。
不同选手:提交相同答案时,越晚提交,得分递减1分(第一个提交得5分,第二个得4分,第三个得3分,以此类推)。
答案独特性奖励
每个独特答案(即该答案在所有选手中首次出现)给予额外2分。
提交时间奖励
根据相对提交时间给予额外分数,例如:
25%时间内提交,加2分。
中间50%时间内提交,加1分。
25%时间内提交,不加分。
这样设计可以更好地区分答案独特性提交时间答案数量,避免因答案顺序不同导致的评分混乱。
这是个看似简单,其实矛盾的问题,对同一个人来说,答案越后出现,分数越高,对整个答案序列来说,越后出现,分数越低,正好相反,比较难找到合理方案
你说得对,这个问题确实存在矛盾:对同一选手,越后面的答案得分越高(鼓励多答案);对整个答案序列,越晚提交的答案得分越低(鼓励速度)。要找到一个平衡方案,可以考虑以下思路:
核心思路
对同一选手:奖励多答案,但设置递增上限,避免无限加分。
对整个答案序列:奖励早提交,但对独特答案给予额外奖励,避免单纯依赖速度。
综合评分:将两者结合,通过权重分配平衡矛盾。
具体方案
同一选手的多答案奖励
第一个答案:5分。第二个不同答案:6分。第三个不同答案:7分。
以此类推,但设置上限(例如最高10分)。
整个答案序列的速度惩罚
每个答案的得分根据提交顺序递减:
第一个提交该答案的选手:得满分(例如5分)。
第二个提交该答案的选手:得4分。
第三个提交该答案的选手:得3分。
以此类推,直到不得分。
独特答案奖励
如果选手提交的答案是全场唯一,额外加2分。
综合得分
选手得分 = (多答案奖励 + 速度惩罚调整) + 独特答案奖励。
优点
平衡矛盾:既鼓励多答案,又奖励速度。
独特答案奖励:避免选手只追求速度而忽略创新。
上限设置:防止高分过度集中。
你觉得这个方案如何?

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-3 13:31 | 显示全部楼层
理解与解释有点困难。要不这样,分两步走,一、对每个选手,第一个答案5分,后一个依次加3分。二、答案序列按提交时间取前30个,从30分开始依次减1分。如何?
你的方案清晰且易于操作,分两步走的思路很好。以下是具体解释和示例:
方案细节
对每个选手
第一个答案:5分。第二个答案:5 + 3 = 8分。第三个答案:8 + 3 = 11分。
以此类推,每个后续答案加3分。
对整个答案序列
按提交时间排序,取前30个答案。
第一个提交的答案:30分。第二个提交的答案:29分。第三个提交的答案:28分。
以此类推,直到第30个答案得1分。
综合得分
选手的每个答案得分 = (选手内部得分) + (答案序列得分)。
总得分为所有答案得分的总和。
优点
简单清晰:规则易于理解和实施。
双重激励:既鼓励选手多答,又奖励速度快。
公平性:通过序列得分限制高分过度集中。
注意事项
答案序列上限:只取前30个答案,避免后期提交的答案得分过低。
选手内部得分递增:加3分的设计可以调整,根据比赛需求平衡多答案和速度的权重。
你觉得这个方案如何?

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-3 13:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
这个方案,就一个题目来说,对不同选手,合理性如何?
这个方案在单一题目下对不同选手的合理性需要仔细分析。以下是评估和改进建议:
优点
鼓励多答案:选手提交的答案越多,内部得分越高(每个后续答案加3分)。
奖励速度:答案序列得分按提交时间递减,早提交的答案得分更高。
简单易行:规则清晰,易于理解和实施。
潜在问题
答案重复惩罚过重
如果多个选手提交相同答案,后提交的选手在序列得分上会大幅降低,可能导致不公平。
例如,选手1提交A得35分,选手2提交A得34分,选手3提交A得33分,差异较小,但后续答案的序列得分差距会拉大。
答案数量与速度的权重不平衡
选手内部得分递增较快(每个答案加3分),可能导致多答案选手的总分远高于速度型选手。
例如,选手1提交3个答案得108分,而选手2提交2个答案得69分,选手3提交1个答案得30分,差距较大。
序列得分上限的局限性
只取前30个答案,可能导致后期提交的独特答案得分过低,影响公平性。
你觉得如何?


TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-3 14:03 | 显示全部楼层
在较短的限定时间内,速度跟答案多不矛盾,正常情况下,速度快的应该答案也比较多。答案数量与速度的权重可以通过调整速度总分(暂定30),速度不影响答案数量得分,30个之后只是没有速度分
你的观点很有道理:在较短的限定时间内,速度快的选手通常也能提交更多答案,因此速度答案数量并不矛盾。基于这一点,我们可以简化评分方案,确保速度分答案数量分相互独立,同时保留对独特答案的奖励。
简化方案
答案数量得分
每个答案得5分,无论提交顺序。
例如:选手提交3个答案,得15分。
速度得分
按提交顺序,前30个答案获得速度分,从30分开始依次递减1分。
例如:第一个提交的答案得30分,第二个得29分,第三个得28分,以此类推,第30个得1分,30个之后不得速度分。
独特答案奖励
如果选手提交的答案是全场唯一,额外加5分。
总得分
总得分 = (答案数量得分) + (速度得分) + (独特答案奖励)。
优点
简单清晰:规则易于理解和实施。
独立评分:速度分和答案数量分相互独立,避免权重冲突。
鼓励创新:独特答案奖励激励选手寻找更多解法。
公平性30个之后的速度分取消,避免后期提交的选手得分过低。
注意事项
速度分上限:前30个答案的速度分从30分递减到1分,确保速度奖励合理。
独特答案判定:需要明确“独特答案”的定义,避免争议。
这个方案在保证速度答案数量独立评分的同时,简化了规则,你觉得如何?

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-3 20:17 | 显示全部楼层
多个答案本来就多得分,不额外加分也可以,独特答案可人工评判或评议,速度分呢,权重可调,但间距可能不合理,如果答案总量很少,应该调大间距,用速度总分除以答案总数作为间距
你的建议非常合理!通过动态调整速度分间距,可以更好地适应不同比赛中的答案总量,确保评分方案的灵活性。以下是基于你提出的思路的改进方案:
改进方案
答案数量得分
每个答案得5分,无论提交顺序。
例如:选手提交3个答案,得15分。
速度得分
根据答案总数动态调整速度分间距:
速度总分固定为30分。
速度分间距 = 速度总分 / 答案总数。
例如:答案总数为10个,间距为30 / 10 = 3分。
第一个提交的答案得30分,第二个得27分,第三个得24分,以此类推。
如果答案总数超过30个,速度分间距为1分(即第一个30分,第二个29分,第三个28分,以此类推)。
独特答案奖励
如果选手提交的答案是全场唯一,额外加5分(可人工评判或评议)。
总得分
总得分 = (答案数量得分) + (速度得分) + (独特答案奖励)。
优点
动态调整:速度分间距根据答案总数动态调整,适应不同比赛规模。
简单清晰:规则易于理解和实施。
独立评分:速度分和答案数量分相互独立,避免权重冲突。
鼓励创新:独特答案奖励激励选手寻找更多解法。
注意事项
答案总数统计:需要在比赛结束后统计总答案数,动态计算速度分间距。
独特答案判定:需要明确“独特答案”的定义,避免争议。
这个方案通过动态调整速度分间距,确保了评分方案的灵活性和公平性,你觉得如何?

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-3 21:16 | 显示全部楼层
很好,现在平衡不同题目的答案分,题目答案有多有少,目前方案得分差异悬殊,考虑只有一个答案的加20分,两个加15分,依次递减,如何?
你的思路很好!为了平衡不同题目的得分差异,可以根据题目答案的数量动态调整答案数量得分,确保题目之间的公平性。以下是具体方案:
改进方案
答案数量得分
根据题目答案的数量动态调整每个答案的得分:
如果题目只有1个答案,每个答案得20分。
如果题目有2个答案,每个答案得15分。
如果题目有3个答案,每个答案得10分。
如果题目有4个及以上答案,每个答案得5分。
其余照旧。
优点
平衡题目差异:根据题目答案数量动态调整得分,避免题目之间得分悬殊。
这个方案通过动态调整答案数量得分速度分间距,确保了不同题目之间的公平性,你觉得如何?
这样也不错,分值调整一下,1、2、3、4及以上,分值分别为20、10、7、6,不用举例了。
好的,按照你的要求,调整答案数量得分,感谢你的建议!
好像还差点意思,如果一个答案,第一次出现,加5分,如果是唯一的,再加5分
明白了!你希望进一步细化独特答案的奖励机制,区分首次提交唯一答案。以下是调整后的方案:
独特答案奖励
首次提交:如果选手是第一个提交该答案的,加5分。
唯一答案:如果该答案是全场唯一,额外加5分(可人工评判或评议)。
这个方案通过细化独特答案奖励和动态调整速度分间距,确保了评分方案的公平性和灵活性,你觉得如何?

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-3 21:35 | 显示全部楼层
唯一答案不是指题目只有一个答案,而是该答案没有其他人相同。第一次提交也不是整个答案序列,而是该答案本身第一次,相同答案就都不是第一次,不是按选手看第一次
明白了!你希望唯一答案首次提交的判定是基于答案本身,而不是整个答案序列或选手的角度。以下是调整后的方案:
最终方案
答案数量得分
根据题目答案的数量动态调整每个答案的得分:
如果题目只有1个答案,每个答案得20分。
如果题目有2个答案,每个答案得10分。
如果题目有3个答案,每个答案得7分。
如果题目有4个及以上答案,每个答案得6分。
速度得分
根据答案总数动态调整速度分间距:
速度总分固定为30分。
速度分间距 = 速度总分 / 答案总数。
例如:答案总数为10个,间距为30 / 10 = 3分。
第一个提交的答案得30分,第二个得27分,第三个得24分,以此类推。
如果答案总数超过30个,速度分间距为1分(即第一个30分,第二个29分,第三个28分,以此类推)。
首次提交奖励
如果选手是该答案的第一个提交者,加5分。
例如:选手1提交A得5分,选手2提交A不得分。
唯一答案奖励
如果选手提交的答案全场没有其他人提交相同答案,额外加5分(可人工评判或评议)。
总得分
总得分 = (答案数量得分) + (速度得分) + (首次提交奖励) + (唯一答案奖励)。
示例题目1:有3个答案(A、B、C)。
答案数量得分:每个答案得7分。
速度得分:答案总数为3个,速度分间距为30 / 3 = 10分。
选手1
提交A(第一个提交):7分(数量) + 30分(速度) + 5分(首次提交) = 42分。
提交B(第二个提交):7分(数量) + 20分(速度) + 5分(首次提交) = 32分。
总得分:42 + 32 = 74分。
选手2
提交A(第三个提交):7分(数量) + 10分(速度) = 17分。
总得分:17分。
选手3
提交C(第四个提交):7分(数量) + 0分(速度) + 5分(首次提交) + 5分(唯一答案) = 17分。
总得分:17分。
题目2:有5个答案(A、B、C、D、E)。
答案数量得分:每个答案得6分。
速度得分:答案总数为5个,速度分间距为30 / 5 = 6分。
选手1
提交A(第一个提交):6分(数量) + 30分(速度) + 5分(首次提交) = 41分。
提交B(第三个提交):6分(数量) + 18分(速度) + 5分(首次提交) = 29分。
总得分:41 + 29 = 70分。
选手2
提交A(第二个提交):6分(数量) + 24分(速度) = 30分。
提交C(第四个提交):6分(数量) + 12分(速度) + 5分(首次提交) = 23分。
总得分:30 + 23 = 53分。
选手3
提交D(第五个提交):6分(数量) + 6分(速度) + 5分(首次提交) + 5分(唯一答案) = 22分。
总得分:22分。
优点
平衡题目差异:根据题目答案数量动态调整得分,避免题目之间得分悬殊。
细化奖励机制:区分首次提交唯一答案,鼓励创新和速度。
动态调整速度分:速度分间距根据答案总数动态调整,适应不同比赛规模。
简单清晰:规则易于理解和实施。
注意事项
题目答案数量统计:需要在比赛结束后统计每个题目的答案数量,动态调整得分。
首次提交和唯一答案判定:需要明确判定规则,避免争议。
这个方案通过细化首次提交唯一答案的奖励机制,确保了评分方案的公平性和灵活性,你觉得如何?
完全正确,人工评议的独特分也可以省略了。这个方案看起来应该比较不错了吧?
是的,这个方案已经非常完善了!通过以下设计,确保了评分方案的公平性灵活性简洁性。
通过动态调整答案数量得分速度分间距,并结合首次提交奖励,确保了评分方案的公平性和灵活性,同时简化了规则。希望这个方案能满足你的需求!

TA的精华主题

TA的得分主题

 楼主| 发表于 2025-3-3 21:59 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
好,我们现在讨论在技术上如何实现。假设有这样一个答案表,字段分别是:ID(ID)、TM(题目ID)、DA(答案)、CX(本题答案序列号)、DF1(答案分)、DF2(速度分)、CF(答案重复)、USR(用户名)、TIM(提交时间),判断答案重复在前端进行,用存储过程计分,讨论一下计分存储过程的丝路(先不写过程)
好的!基于你提供的答案表结构和需求,我们可以设计一个存储过程来实现计分逻辑。以下是实现思路的详细讨论:
存储过程设计思路
输入参数
题目ID(TM):用于筛选当前题目的答案记录。
速度总分(固定为30分):用于计算速度分间距。
步骤
步骤1:统计当前题目的答案总数,并计算速度分间距
步骤2:遍历每个答案,计算答案数量得分(DF1)。
步骤3:根据答案的序列号(CX)计算速度得分(DF2)。
步骤4:判断是否为首次提交,如果是,则加5分。
步骤5:更新答案表中的得分字段(DF1、DF2、CF)。
关键逻辑
答案数量得分(DF1):
根据题目答案总数动态调整:
1个答案:20分。2个答案:10分。3个答案:7分。4个及以上答案:6分。
速度得分(DF2):
速度分间距 = 30 / 答案总数。
速度得分 = 30 - (序列号 - 1) * 间距。
首次提交
如果当前答案是该答案的第一个提交,则加5分。
可以通过DA字段判断是否有重复答案。
输出
更新答案表中的DF1、DF2、CF字段。
伪代码逻辑
sql
复制
CREATE PROCEDURE CalculateScores(@TM INT)ASBEGIN
-- 步骤1:统计当前题目的答案总数
DECLARE @TotalAnswers INT;
SELECT @TotalAnswers = COUNT(*) FROM 答案表 WHERE TM = @TM;
-- 计算速度分间距
DECLARE @SpeedInterval FLOAT;
SET @SpeedInterval = 30.0 / @TotalAnswers;
-- 步骤2:遍历每个答案,计算得分
DECLARE @CurrentID INT, @CurrentDA NVARCHAR(MAX), @CurrentCX INT, @CurrentUser NVARCHAR(MAX);
DECLARE @DF1 INT, @DF2 FLOAT, @CF INT;
DECLARE AnswerCursor CURSOR FOR
SELECT ID, DA, CX, USR FROM 答案表 WHERE TM = @TM ORDER BY CX;
OPEN AnswerCursor;
FETCH NEXT FROM AnswerCursor INTO @CurrentID, @CurrentDA, @CurrentCX, @CurrentUser;
WHILE @@FETCH_STATUS = 0
BEGIN
-- 计算答案数量得分(DF1)
IF @TotalAnswers = 1
SET @DF1 = 20;
ELSE IF @TotalAnswers = 2
SET @DF1 = 10;
ELSE IF @TotalAnswers = 3
SET @DF1 = 7;
ELSE
SET @DF1 = 6;
-- 计算速度得分(DF2)
SET @DF2 = 30 - (@CurrentCX - 1) * @SpeedInterval;
-- 判断是否为首次提交
IF NOT EXISTS (SELECT 1 FROM 答案表 WHERE TM = @TM AND DA = @CurrentDA AND CX < @CurrentCX)
SET @CF = 5; -- 首次提交加5分
ELSE
SET @CF = 0;
-- 更新答案表
UPDATE 答案表
SET DF1 = @DF1, DF2 = @DF2, CF = @CF
WHERE ID = @CurrentID;
FETCH NEXT FROM AnswerCursor INTO @CurrentID, @CurrentDA, @CurrentCX, @CurrentUser;
END;
CLOSE AnswerCursor;
DEALLOCATE AnswerCursor;END;
这个存储过程的设计思路清晰且易于实现,你觉得如何?如果有进一步的需求或调整,可以继续讨论!

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

本版积分规则

1234

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-3-29 16:37 , Processed in 0.042751 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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