暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

高考赋分制解析【下】——从模型设计到SQL实现,一文读懂!

原创 收获不止数据库 2025-06-10
129
上集回顾

高考赋分制解析【上】从规则到实践,一文读懂!


接上回

下课铃刚响,李爸激动地拉住了熊猫老师:“熊猫老师,您上次说要和我们探讨赋分制的系统实现,我已经叫了我的IT同事过来了!”

"好!"熊猫老师眼中闪烁着技术人员特有的光芒。“上次我们手工计算了20个学生的赋分,发现张丫霸从63分变成93分,朱坚强从0分变成30分。今天我们就一条SQL让数据库自动完成这个转换过程!”

李爸的同事小王(一位资深DBA)不可思议的瞪大眼睛:“就一条SQL?”




1



数据准备:重现熟悉的考试场景

"是的。不过受限于各种条件,我们只能对场景做最简化的模拟,突出核心,暂不考虑过多的细节。"熊猫老师一边说着,一边在键盘上飞快地敲击着,“就像搭建一个虚拟的考试现场,把我们那20个可爱的学生都请进来。”

    --创建学生成绩表:这就是我们的数字化考场
    CREATE TABLE student_scores (
        student_id NUMBER(10),                -- 学生ID,每个学生的唯一标识
        student_name VARCHAR2(50),            -- 学生姓名
        raw_score NUMBER(5,2),                -- 原始分数,支持小数点后两位
        grade CHAR(1),                        -- 等级(A-E),系统计算后填入
        converted_score NUMBER(5,2)           -- 赋分结果,这就是最终的神奇转换结果
    );

    "表结构很简单,但每个字段都有其深意,"熊猫老师指着屏幕解释道,“raw_score用NUMBER(5,2)是因为考试分数可能有小数,比如99.5分;grade和converted_score开始为空,等我们的算法计算完成后再填入。”

    接下来,熊猫老师开始逐一录入那些熟悉的名字:

      -- 重现上次的考试现场:20名同学的化学考试原始成绩
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (1'牛学神'66);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (2'张丫霸'63);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (3'郝厉害'60);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (4'牛二爷'59);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (5'艾学习'58);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (6'孙奋斗'55);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (7'钱多多'53);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (8'陈努力'52);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (9'王大锤'51);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (10'甄聪明'50);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (11'小牛'49);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (12'小马'47);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (13'小翠'45);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (14'小丽'43);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (15'小南'42);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (16'小北'41);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (17'小强'40);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (18'牛漂亮'18);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (19'羊美丽'8);
      INSERT INTO student_scores(student_id, student_name, raw_score) VALUES (20'朱坚强'0);
      COMMIT;

      小明看着这些熟悉的名字,忍不住笑了:“还是我们的老朋友们!拿了六六大顺的牛学神和捧了大鸭蛋的朱坚强。”

      李爸:“数据录入完成,是不是见证奇迹的时刻要来了。




      2



      算法核心:四步走完赋分全过程

      "没错!"熊猫老师搓着手,兴奋得像个孩子,"我们要把上次那个复杂的手工计算过程,完完全全地翻译成数据库能理解的SQL语言。关键是要分解步骤,让每一步的逻辑都像水晶一样透明。"

      第一步:排名计算 - 给每个学生找到自己的位置

      "就像上次我们在黑板上按分数高低排队一样,"熊猫老师一边解释一边写代码,"计算机也需要先给所有学生排个队。"

        -- 第一步:排名计算 - 这是一切计算的基础
        ranked_students AS (
            SELECT 
                student_id,
                student_name,
                raw_score,
                -- 使用RANK()函数处理同分情况,确保同分学生得到相同排名
                RANK() OVER (ORDER BY raw_score DESCas rank_num,
                -- COUNT() OVER()获取总人数,这个技巧避免了额外的子查询
                COUNT(*OVER () as total_count
            FROM student_scores
        )

        小王敏锐地发现了关键点:"熊猫老师,这里为什么用RANK()而不是ROW_NUMBER()?"

        熊猫老师郑重地点头:"这很关键!在此场景中,绝不能用ROW_NUMBER()。"他在白板上写下两个示例:

        • ROW_NUMBER()
          :1,2,3,4...(强制给同分学生不同排名)
        • RANK()
          :1,2,2,2,5,6...(同分学生得到相同排名,后续排名跳跃)

        "想象一下,两个学生都考了85分,如果用ROW_NUMBER(),可能一个排第100名进A级,另一个排第101名进B级,结果一个得93分,一个得85分。这完全违背了'同分同待遇'的基本公平原则!而RANK()确保同分学生获得相同排名,虽然会影响后续的等级划分比例,但这才是真实情况,系统需要在这个基础上制定合理的等级划分策略。"

        "RANK()和COUNT() OVER()都是数据库的窗口函数,"熊猫老师继续说道,"窗口函数不仅代码简洁,还可以在一次扫描中完成多种计算,比传统的子查询效率更高。这在处理大数据量时特别重要。"

         ②第二步:等级划分 - 按福建省标准分配ABCDE五个等级

        "接下来是关键的等级分配,"熊猫老师的语调变得严肃起来,"这一步必须严格按照福建省教育厅的规定:A级15%,B级35%,C级35%,D级13%,E级2%。"

          -- 第二步:等级划分 - 严格按照福建省的15%、35%、35%、13%、2%比例
          graded_students AS (
              SELECT 
                  student_id, student_name, raw_score, rank_num, total_count,
                  CASE
                      -- A级:前15%(对于20人:CEIL(20 × 0.15) = 3,即前3名)
                      WHEN rank_num <= CEIL(total_count * 0.15THEN 'A'
                      -- B级:前15%之后到前50%(第4名到第10名)
                      WHEN rank_num <= CEIL(total_count * 0.50THEN 'B'
                      -- C级:前50%之后到前85%(第11名到第17名)
                      WHEN rank_num <= CEIL(total_count * 0.85THEN 'C'
                      -- D级:前85%之后到前98%(第18名到第19名)
                      WHEN rank_num <= CEIL(total_count * 0.98THEN 'D'
                      -- E级:剩下的就是最后2%(第20名)
                      ELSE 'E'
                  END as grade
              FROM ranked_students
          )

          重要说明:这里使用累积比例的简洁写法。由于CASE语句按顺序执行,前15%先被分配A级,剩下的15%-50%自动成为B级,以此类推。这比写区间判断更简洁且不易出错。

           ③第三步:计算等级边界 - 找出每个等级的分数范围

          "现在我们要找出每个等级内的最高分和最低分,"熊猫老师继续解释,"这些边界值是等比例转换公式的关键参数。"

            -- 第三步:计算每个等级内的原始分数范围,这些数据是公式计算的基础
            grade_ranges AS (
                SELECT 
                    grade,
                    -- 找出等级内的最高和最低原始分数
                    MAX(raw_score) as max_raw_score,      -- 等级内最高原始分
                    MIN(raw_score) as min_raw_score,      -- 等级内最低原始分
                    -- 对应的赋分区间上限(福建省标准)
                    CASE grade 
                        WHEN 'A' THEN 100 WHEN 'B' THEN 85 WHEN 'C' THEN 70 
                        WHEN 'D' THEN 55 ELSE 40 
                    END as max_converted_score,
                    -- 对应的赋分区间下限(福建省标准)
                    CASE grade 
                        WHEN 'A' THEN 86 WHEN 'B' THEN 71 WHEN 'C' THEN 56 
                        WHEN 'D' THEN 41 ELSE 30 
                    END as min_converted_score
                FROM graded_students 
                GROUP BY grade
            )

            小王点头道:"这一步很巧妙!通过GROUP BY grade,我们能分别统计出每个等级的分数范围。比如A级的原始分范围是60-66分(郝厉害到牛学神),对应的赋分范围是86-100分。"

            "完全正确!"熊猫老师赞道,"这样A级原始分的60-66这6分的跨度,要映射到赋分的86-100这14分的跨度上。这就是等比例转换的数学基础。"

            ④第四步:特殊情况处理 - 让系统更加智能和健壮

            "现在到了算法的核心部分,"熊猫老师的表情变得专注,"我们必须处理所有可能的边界情况,确保系统的数学稳定性和业务合理性。"


              -- 第四步:特殊情况处理与等比例转换公式应用
              final_calculation AS (
                  SELECT 
                      gs.student_id, gs.student_name, gs.raw_score, gs.rank_num, gs.grade,
                      CASE
                          -- 特殊处理1:全省第1名必须获得满分100分
                          WHEN gs.rank_num = 1 THEN 100
                          -- 特殊处理2:全省最低分必须获得保底30分
                          WHEN gs.raw_score = (SELECT MIN(raw_score) FROM student_scores) THEN 30
                          -- 特殊处理3:单人等级的健壮性处理
                          -- 当等级内只有1人时,max_raw_score = min_raw_score,公式分母为0
                          -- 这种情况在20万考生中几乎不可能出现,但为了代码健壮性必须处理
                          WHEN gr.max_raw_score = gr.min_raw_score THEN 
                              CASE gs.grade
                                  WHEN 'A' THEN 100  -- A级唯一学生给满分
                                  WHEN 'B' THEN 85   -- B级唯一学生给该级最高分
                                  WHEN 'C' THEN 70   -- C级唯一学生给该级最高分
                                  WHEN 'D' THEN 55   -- D级唯一学生给该级最高分
                                  WHEN 'E' THEN 30   -- E级唯一学生给保底分
                              END
                          -- 一般情况:应用等比例转换公式
                          -- 公式:赋分 = 等级下限 + (个人原始分 - 等级原始分下限) × 
                          --              (等级赋分跨度) ÷ (等级原始分跨度)
                          ELSE ROUND(
                              gr.min_converted_score + 
                              (gs.raw_score - gr.min_raw_score) * 
                              (gr.max_converted_score - gr.min_converted_score) / 
                              (gr.max_raw_score - gr.min_raw_score), 0
                          )
                      END as converted_score
                  FROM graded_students gs, grade_ranges gr
                  WHERE gs.grade = gr.grade
              )

              小明疑惑地问:"为什么等级内只有一个人就要特殊处理呢?"

              熊猫老师解释:"如果等级内仅一人,max_raw_score等于min_raw_score,等比例公式的分母就是零,会导致数学错误。虽然这种情况在实际考试中极其罕见,但程序必须处理所有边界条件。我们的处理策略是:ABCD级唯一学生给该级最高分,E级唯一学生给30分,这样确保整个赋分体系始终有最高分100和最低分30。当然,这只是我们的一种设计方案,实际的官方系统可能会有不同的处理逻辑。"





              3



              完整实现:四步合并一气呵成

              "现在让我们把这四个步骤完美地组合在一起,"熊猫老师深吸一口气。

              随后,手指在键盘上飞舞,形成一个完整、优雅、高效的SQL查询。
                -- 福建省高考赋分制完整实现算法
                WITH 
                -- 第一步:排名计算,确定每个学生的相对位置
                ranked_students AS (
                    SELECT 
                        student_id, student_name, raw_score,
                        RANK() OVER (ORDER BY raw_score DESCas rank_num,
                        COUNT(*OVER () as total_count
                    FROM student_scores
                ),
                -- 第二步:等级划分,按福建省15%、35%、35%、13%、2%标准分配
                graded_students AS (
                    SELECT 
                        student_id, student_name, raw_score, rank_num, total_count,
                        CASE
                            WHEN rank_num <= CEIL(total_count * 0.15THEN 'A'
                            WHEN rank_num <= CEIL(total_count * 0.50THEN 'B'
                            WHEN rank_num <= CEIL(total_count * 0.85THEN 'C'
                            WHEN rank_num <= CEIL(total_count * 0.98THEN 'D'
                            ELSE 'E'
                        END as grade
                    FROM ranked_students
                ),
                -- 第三步:计算各等级的原始分数范围和对应的赋分区间
                grade_ranges AS (
                    SELECT 
                        grade,
                        MAX(raw_score) as max_raw_score,
                        MIN(raw_score) as min_raw_score,
                        CASE grade 
                            WHEN 'A' THEN 100 WHEN 'B' THEN 85 WHEN 'C' THEN 70 
                            WHEN 'D' THEN 55 ELSE 40 
                        END as max_converted_score,
                        CASE grade 
                            WHEN 'A' THEN 86 WHEN 'B' THEN 71 WHEN 'C' THEN 56 
                            WHEN 'D' THEN 41 ELSE 30 
                        END as min_converted_score
                    FROM graded_students 
                    GROUP BY grade
                ),
                -- 第四步:特殊情况处理与等比例转换公式应用
                final_calculation AS (
                    SELECT 
                        gs.student_id, gs.student_name, gs.raw_score, gs.rank_num, gs.grade,
                        CASE
                            -- 特殊情况1:全省第1名固定100分
                            WHEN gs.rank_num = 1 THEN 100
                            -- 特殊情况2:全省最低分固定30分
                            WHEN gs.raw_score = (SELECT MIN(raw_score) FROM student_scores) THEN 30
                            -- 特殊情况3:单人等级处理(健壮性考虑)
                            WHEN gr.max_raw_score = gr.min_raw_score THEN 
                                CASE gs.grade
                                    WHEN 'A' THEN 100 WHEN 'B' THEN 85 WHEN 'C' THEN 70 
                                    WHEN 'D' THEN 55 WHEN 'E' THEN 30
                                END
                            -- 一般情况:应用等比例转换公式
                            ELSE ROUND(
                                gr.min_converted_score + 
                                (gs.raw_score - gr.min_raw_score) * 
                                (gr.max_converted_score - gr.min_converted_score) / 
                                (gr.max_raw_score - gr.min_raw_score), 0
                            )
                        END as converted_score
                    FROM graded_students gs, grade_ranges gr
                    WHERE gs.grade = gr.grade
                )
                -- 显示最终的赋分结果,按排名顺序展示
                SELECT 
                    rank_num as "排名", 
                    student_name as "姓名", 
                    raw_score as "原始分", 
                    grade as "等级", 
                    converted_score as "赋分"
                FROM final_calculation 
                ORDER BY rank_num;





                4



                见证奇迹:完美复现手工计算结果

                "激动人心的时刻终于到了!"熊猫老师的手指悬停在F5键上方,教室里的空气仿佛都凝固了。"让我们一起见证Oracle SQL是否能完美复现我们上次的手工计算结果!"

                随着回车键按下,屏幕上快速滚过几行执行信息,然后显示出了最终结果:

                  排名  姓名      原始分  等级  赋分
                  ----  --------  ------  ----  ----
                  1     牛学神    66      A     100  ← 🔥 第1名强制100分(特殊处理)
                  2     张丫霸    63      A     93   ← 等比例公式:86+(63-60)×14÷6=93
                  3     郝厉害    60      A     86   ← 等比例公式:86+(60-60)×14÷6=86
                  4     牛二爷    59      B     85   ← 等比例公式:71+(59-50)×14÷9=85
                  5     艾学习    58      B     83   ← 等比例公式:71+(58-50)×14÷9=83
                  6     孙奋斗    55      B     79   ← 等比例公式:71+(55-50)×14÷9=79
                  7     钱多多    53      B     76   ← 等比例公式:71+(53-50)×14÷9=76
                  8     陈努力    52      B     74   ← 等比例公式:71+(52-50)×14÷9=74
                  9     王大锤    51      B     73   ← 等比例公式:71+(51-50)×14÷9=73
                  10    甄聪明    50      B     71   ← B级最低分:71+(50-50)×14÷9=71
                  11    小牛      49      C     70   ← C级最高分:56+(49-40)×14÷9=70
                  12    小马      47      C     67   ← 等比例公式:56+(47-40)×14÷9=67
                  13    小翠      45      C     64   ← 等比例公式:56+(45-40)×14÷9=64
                  14    小丽      43      C     61   ← 等比例公式:56+(43-40)×14÷9=61
                  15    小南      42      C     59   ← 等比例公式:56+(42-40)×14÷9=59
                  16    小北      41      C     58   ← 等比例公式:56+(41-40)×14÷9=58
                  17    小强      40      C     56   ← C级最低分:56+(40-40)×14÷9=56
                  18    牛漂亮    18      D     55   ← D级最高分:41+(18-8)×14÷10=55
                  19    羊美丽    8       D     41   ← D级最低分:41+(8-8)×14÷10=41
                  20    朱坚强    0       E     30   ← 🔥 最后1名强制30分(特殊处理)

                  小明激动地站了起来:"太神奇了!每一个数字都和我们上次手工计算的结果完全一样!张丫霸还是93分,小强是56分,牛漂亮55分,羊美丽41分,朱坚强30分!"





                  5



                  完美收官:从手工到智能实现

                  批量更新:将计算结果写回数据库

                  "光有查询结果还不够,"熊猫老师继续说道,"我们需要把这些宝贵的计算结果保存到数据库中,供后续的高考录取系统使用,代码思路如下。"

                    UPDATE student_scores 
                    SET (grade, converted_score) = (
                        SELECT grade, converted_score 
                        FROM (
                            -- 这里是完整的赋分计算逻辑
                            WITH 
                            ranked_students AS (
                                SELECT 
                                    student_id, student_name, raw_score,
                                    RANK() OVER (ORDER BY raw_score DESCas rank_num,
                                    COUNT(*OVER () as total_count
                                FROM student_scores
                            ),
                            graded_students AS (
                                SELECT 
                                    student_id, student_name, raw_score, rank_num, total_count,
                                    CASE
                                        WHEN rank_num <= CEIL(total_count * 0.15THEN 'A'
                                        WHEN rank_num <= CEIL(total_count * 0.50THEN 'B'
                                        WHEN rank_num <= CEIL(total_count * 0.85THEN 'C'
                                        WHEN rank_num <= CEIL(total_count * 0.98THEN 'D'
                                        ELSE 'E'
                                    END as grade
                                FROM ranked_students
                            ),
                            grade_ranges AS (
                                SELECT 
                                    grade,
                                    MAX(raw_score) as max_raw_score,
                                    MIN(raw_score) as min_raw_score,
                                    CASE grade 
                                        WHEN 'A' THEN 100 WHEN 'B' THEN 85 WHEN 'C' THEN 70 
                                        WHEN 'D' THEN 55 ELSE 40 
                                    END as max_converted_score,
                                    CASE grade 
                                        WHEN 'A' THEN 86 WHEN 'B' THEN 71 WHEN 'C' THEN 56 
                                        WHEN 'D' THEN 41 ELSE 30 
                                    END as min_converted_score
                                FROM graded_students 
                                GROUP BY grade
                            ),
                            final_calculation AS (
                                SELECT 
                                    gs.student_id, gs.grade,
                                    CASE
                                        WHEN gs.rank_num = 1 THEN 100
                                        WHEN gs.raw_score = (SELECT MIN(raw_score) FROM student_scores) THEN 30
                                        WHEN gr.max_raw_score = gr.min_raw_score THEN 
                                            CASE gs.grade
                                                WHEN 'A' THEN 100 WHEN 'B' THEN 85 WHEN 'C' THEN 70 
                                                WHEN 'D' THEN 55 WHEN 'E' THEN 30
                                            END
                                        ELSE ROUND(
                                            gr.min_converted_score + 
                                            (gs.raw_score - gr.min_raw_score) * 
                                            (gr.max_converted_score - gr.min_converted_score) / 
                                            (gr.max_raw_score - gr.min_raw_score), 0
                                        )
                                    END as converted_score
                                FROM graded_students gs, grade_ranges gr
                                WHERE gs.grade = gr.grade
                            )
                            SELECT grade, converted_score FROM final_calculation 
                            WHERE student_id = student_scores.student_id
                        )
                    );
                    commit;

                    ②数据质量检查:确保系统的可靠性

                    "任何一个生产系统都必须有完善的质量检查机制,"熊猫老师强调道,"特别是像高考赋分这样关系到学生前途的重要计算。"

                      -- 全面的数据质量检查
                      SELECT '数据完整性检查' as 检查类型, '总人数' as 检查项目, COUNT(*as 检查结果 
                      FROM student_scores
                      UNION ALL
                      SELECT '数据完整性检查''已赋分人数'COUNT(*
                      FROM student_scores WHERE converted_score IS NOT NULL
                      UNION ALL
                      SELECT '等级分布检查', grade || '级人数'COUNT(*
                      FROM student_scores WHERE grade IS NOT NULL GROUP BY grade
                      UNION ALL
                      SELECT '分数范围检查''赋分最高分'MAX(converted_score) 
                      FROM student_scores WHERE converted_score IS NOT NULL
                      UNION ALL
                      SELECT '分数范围检查''赋分最低分'MIN(converted_score) 
                      FROM student_scores WHERE converted_score IS NOT NULL
                      UNION ALL
                      SELECT '逻辑性检查''原始分与赋分差异数'COUNT(*)
                      FROM student_scores 
                      WHERE converted_score IS NOT NULL AND converted_score < raw_score
                      ORDER BY 检查类型, 检查项目;

                      "这个检查查询能帮我们发现各种潜在问题,"熊猫老师解释道,"比如是否所有学生都完成了赋分,等级分布是否合理,赋分是否在30-100的正常范围内,以及赋分后是否真的比原始分更高等等。"

                      ③性能优化考虑:面向大规模数据

                      小王关心地问:"熊猫老师,如果考生数据量达数百万甚至更多,这套算法性能如何?"

                      熊猫老师微笑道:"不用担心,优化手段还是很多的,比如:1. 为raw_score字段建立索引,加速排序;2. 使用并行查询提高大数据量的处理速度;3. 分批处理,比如按学校或地区分批计算等等。这里就不一一展开了。"



                      总结
                      夕阳西下,熊猫老师摘下程序员眼镜,满意地看着屏幕上的完美结果。
                      "今天我们完成了一次神奇的转换,"熊猫老师笑道,"从上次的手工计算到今天的一键搞定,张丫霸还是那个93分,朱坚强还是那个30分,殊途同归!"

                      小明兴奋地说:"太酷了!原来复杂的赋分制可以用一条这么优雅简洁的SQL实现了。我现在终于理解什么叫'代码改变世界'了!"

                      小王总结道:"这个案例展示了如何将教育政策精确转化为数据库算法。从排名到赋分,每一步都体现了技术服务教育公平的理念。"

                      "没错!"熊猫老师点头道,"技术让复杂的教育评价变得高效精准,更重要的是,它让公平变得可验证、可重现、易维护。每一行代码背后,都承载着对教育公平的坚持。"

                      需要特别说明的是,本文展示的仅仅是一个极简示例真实的高考赋分系统要复杂得多!是绝不可能仅用一条SQL就能搞定的,需要考虑太多场景细节了。比如当大量学生出现同分时,可能会打破等级比例:按15%划分A级理论上应该有3000人,但如果第2999名到第3500名都是同分,系统需要决定是严格按比例切分还是保持同分同级。不同省份对此可能有不同的处理策略。

                      此外还有数据校验、异常处理、并发控制、审计日志等工程问题,以及如何处理缺考、作弊、成绩复议等特殊情况。

                      但无论系统多复杂,核心思想不变:通过等级划分和等比例转换,将原始分数映射到标准分数区间,实现不同科目分数的可比性。这正是新高考制度的精髓所在。


                      祝莘莘高考学子们:

                            心想事成,金榜题名!!!


                      说明

                      上述复杂SQL可在Oracle执行,欢迎国产数据库厂家在自家数据库上验证一把,期待在文末留言并附上运行截图,留下宝贵回忆的同时,也能一起见证咱们国产数据库的丝滑兼容性。


                      致谢

                      感谢数据库优化专家老虎刘(刘永甫)老师对本文SQL的完善提供了宝贵的建议!




                      {本期互动} 欢迎大家对赋分制规则的理解、实现思路及验证结果进行交流
                      在评论区留下你的宝贵观点,截至6月16日(含),留言且留言处点赞数前三,IF CLUB社区赠充气沙发,休闲旅行必备






                      更多精彩原创内容见公众号
                          点关注     不迷路     

                      往期回顾
                      大白话人工智能系列
                      数据库拍案惊奇系列
                      世事洞明皆学问系列




                      最后修改时间:2025-08-05 14:35:21
                      文章转载自收获不止数据库,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                      评论