`
icrwen
  • 浏览: 269553 次
  • 性别: Icon_minigender_2
  • 来自: 济南
社区版块
存档分类
最新评论

游戏概率算法的诀窍

 
阅读更多

刚从多年企业应用开发转向网页游戏开发,发现自己对这一领域很陌生。

今天写了一个从多条记录根据一定的概率抽取4个不同对象的功能,(只是算法中的一小部分)。概率值越大则对象的位置越后,发现了如果这个概率值落到了最后一个对象的位置,而不幸最后那个对象已经抽取了一次,这个时候就会出现问题了最后那个对象虽然落在抽取的区域不过不能被抽2次,因为只能抽取4次。这个时候咋办呢?

  解决的方法是在最大值的后面加多4条记录这样就不会说抽不到对象了。

 

代码是:

 INSERT INTO @PlayerTempletTempWeight select PlayerTempletID,Reactivity, HireLvl from PlayerTemplet where HireLvl <= @UserLVL order by PlayerTempletID INSERT INTO @PlayerWeightTableTemp select PlayerTempletID , Weight = (select sum(Reactivity) from @PlayerTempletTempWeight b where b.PlayerTempletID <= a.PlayerTempletID and HireLvl <= @UserLVL ), HireLvl from @PlayerTempletTempWeight a where HireLvl <= @UserLVL order by a.PlayerTempletID asc --INSERT INTO @PlayerWeightTableTemp select PlayerTempletID , Weight = (select sum(Reactivity) from PlayerTemplet b where b.PlayerTempletID<= a.PlayerTempletID and HireLvl <= @UserLVL order by a.PlayerTempletID ), HireLvl from PlayerTemplet a where HireLvl <= @UserLVL order by a.PlayerTempletID select @WeightTotal = max(weight)+1 from @PlayerWeightTableTemp where HireLvl <= @UserLVL INSERT INTO @PlayerWeightTableTemp select top 4 PlayerTempletID, Weight = @WeightTotal, HireLvl from @PlayerWeightTableTemp order by PlayerTempletID asc SET @RandWeight = Convert(int,(rand()*@WeightTotal)) INSERT INTO @PlayerTempletTableTemp SELECT TOP 1 PT.PlayerTempletID,0 FROM @PlayerWeightTableTemp PT WHERE HireLvl <= @UserLVL AND Weight > @RandWeight order by Weight asc SET @RandWeight = Convert(int,(rand()*@WeightTotal)) INSERT INTO @PlayerTempletTableTemp SELECT TOP 1 PT.PlayerTempletID,0 FROM @PlayerWeightTableTemp PT WHERE HireLvl <= @UserLVL AND Weight > @RandWeight AND PlayerTempletID NOT IN( SELECT PlayerTempletID FROM @PlayerTempletTableTemp) order by Weight asc SET @RandWeight = Convert(int,(rand()*@WeightTotal)) INSERT INTO @PlayerTempletTableTemp SELECT TOP 1 PT.PlayerTempletID,0 FROM @PlayerWeightTableTemp PT WHERE HireLvl <= @UserLVL AND Weight > @RandWeight AND PlayerTempletID NOT IN( SELECT PlayerTempletID FROM @PlayerTempletTableTemp) order by Weight asc SET @RandWeight = Convert(int,(rand()*@WeightTotal)) INSERT INTO @PlayerTempletTableTemp SELECT TOP 1 PT.PlayerTempletID,0 FROM @PlayerWeightTableTemp PT WHERE HireLvl <= @UserLVL AND Weight > @RandWeight AND PlayerTempletID NOT IN( SELECT PlayerTempletID FROM @PlayerTempletTableTemp) order by Weight asc

 

分享到:
评论

相关推荐

    概率模型.ppt

    通过对每个挂钩非空概率的分析,可以得出传送带的效率表达式,从而探讨提高效率的方法,如增加挂钩数量。 接下来的【报童的诀窍】是一个经典的库存管理问题。报童需要决定每天购买多少报纸以最大化长期平均收入。...

    数学建模姜启源概率模型PPT教案.pptx

    * 概率模型:包括概率的定义、概率的计算和概率模型的应用。 * 统计回归模型:包括统计回归模型的定义、统计回归模型的应用和统计回归模型的优缺点。 * 马氏链模型:包括马氏链模型的定义、马氏链模型的应用和马氏链...

    数学建模-概率模型.ppt

    【概率模型】是数学建模中的重要组成部分,用于描述和分析具有随机性的系统行为。在第九章中,我们探讨了几个具体的概率模型应用实例。 **9.1 传送系统的效率** 传送系统的效率评估了一个周期内传送带能运走的产品...

    第9章 概率模型.ppt

    在这种设定下,通过计算一周期内每个挂钩被占用的概率,可以推导出系统的实际效率。研究发现,增加挂钩的数量能够有效提升效率,数学关系式为E ≈ n/2m,其中E代表效率,n代表生产周期内的产品总数,m代表挂钩的数量...

    成人高考本科技巧大全

    考生应当在掌握好基础知识的同时,也要学会一些答题的策略和方法,这样在实际考试中才能更好地发挥自己的水平,提高通过考试的可能性。对于那些自身条件并不十分理想,例如基础薄弱或者复习时间不足的考生,合理运用...

    斯坦福机器学习课程“CS 229 - Machine Learning”速查表

    这种方法简单直观,但在大规模数据集上的计算效率较低。 ##### 学习理论(Learning Theory) 学习理论探讨了机器学习算法的有效性和可行性。它研究了算法如何随着数据量的增加而改进,以及如何评估模型的泛化能力...

    132有理数的减法2PPT学习教案.pptx

    有理数是实数系的一个重要组成部分,其运算...通过理解加减法的统一性、转化技巧、情境引入、符号简写窍门、多种计算方法以及实际练习,学生能够建立起系统的有理数减法知识体系,为他们的数学学习之旅打下坚实的基础。

    sklearn0.19中文文档

    1.4.5. 使用诀窍 1.4.6. 核函数 1.4.6.1. 自定义核 1.4.6.1.1. 使用 python 函数作为内核 1.4.6.1.2. 使用 Gram 矩阵 1.4.6.1.3. RBF 内核参数 1.4.7. 数学公式 1.4.7.1. SVC 1.4.7.2. NuSVC 1.4.7.3. SVR 1.4.8. ...

    纳米级制造工艺的智能化控制.pptx

    ### 纳米级制造工艺的智能化控制 #### 智能控制在纳米级制造工艺中的影响 ...随着机器学习、人工智能、云计算和边缘计算等技术的不断发展,未来的纳米级制造将更加智能化、高效化,有望推动更多高科技领域的发展。

    报童问题的matlab仿真

    1. **需求分布**:报童需要预测每日报纸的需求量,这通常假设为某种概率分布,如正态分布、泊松分布等。 2. **订购成本**:每份报纸的订购成本是固定的,未售出的报纸会产生这部分成本。 3. **零售价格**:卖出每份...

    2011年高考数学高考状元透析易错点与难点9扫描版新人教A版.rar

    例如,代数中的函数问题往往考察学生对函数性质的理解和应用,几何题目则需要学生具备良好的空间想象能力和严谨的推理能力,而概率统计部分则要求学生能够准确把握统计规律和概率计算。这些内容对于许多学生而言,...

    3.4 单侧假设检验.pptx

    如果猜中概率p=1/2代表没有诀窍,原假设H0为p=1/2,备择假设Ha为p&gt;1/2。由于n=100较大,可以使用正态近似,Z=(X̄ - p0) / sqrt[p0(1-p0)/n] = (60 - 50) / sqrt[0.5*0.5/100] ≈ 1.306,这个值大于Zα/2=1.306(α=...

    可乐的数据分析学习宝典.pdf

    - **概率论、概率分布、假设检验、回归分析**:这些是统计学中更深层次的主题,涵盖概率的定义、各种概率分布的特性、统计推断中的假设检验方法和回归分析技术。 ### 数据生活 - **数据预测、人口数据分析**:这...

    大学数学建模复习提纲 数模重点

    - **求解方法**:利用单纯形法等优化算法求解。 #### 五、微分方程模型 **5.1 传染病模型** - **基本原理**:基于SIR模型(易感者-感染者-移除者模型),研究传染病传播规律。 - **应用案例**:COVID-19疫情分析...

    东财20春《国际财务管理》在线作业二答案(0002).docx

    这种计算方法被广泛应用于债券定价和其他金融工具的估值中。 ### 14. **国际金融市场结构** - 当前的国际金融市场主要由四大市场构成,包括**外汇市场、资本市场、商品市场以及衍生品市场**等。这些市场在全球经济...

    Deep Learning Super VIP Cheatsheet

    - **基于候选区域的方法**:如R-CNN系列算法,先找到潜在的目标位置,再进行分类。 - **端到端的方法**:如YOLO(You Only Look Once),可以直接从输入图像预测出物体类别及其边界框。 **人脸识别与验证(Face ...

Global site tag (gtag.js) - Google Analytics