【Unity】简易而又实用的概率算法

news2024/9/20 0:37:18

1.两个数中任选一个(抛硬币)

基础版本:

public int RandomBetweenTwoNumber(int a,int b)
{
    float random = Random.Range(0,1f);
    return radom<=0.5f ? a : b ;
}

升级版本(支持概率调整):

/*
    pa表示“返回a的概率”

    pa 的值必须介于[0,1]闭区间
*/
public int RandomBetweenTwoNumber(int a,int b,float pa)
{
    //取一个介于0~1的随机值
    float random = Random.Range(0,1f);
    //如果random大于pa,则返回b,否则返回a
    return random > pa ? b : a ;
}

2.根据概率返回布尔值

/*
    p表示“出现true的概率”,
    因此必须介于0~1之间
*/
public bool RandomBool(float p)
{
    float random = Random.Range(0,1f);
    return random<=p;
}

3.抽卡算法

思路:建立一个概率列表(如图下所示),其概率值之和为 1 , 然后取一个0~1之间的随机值,看看它落入到概率列表中哪个区间。

下面的代码就是一个示例,它会根据概率列表中的每个元素的概率情况返回其索引值。

public List<float> pList = new();

void Start()
{
    pList.Add(0.2f);
    pList.Add(0.3f);
    pList.Add(0.1f);
    pList.Add(0.1f);
    pList.Add(0.3f);

    Debug.Log(RandomIndex());
}

public int RandomIndex()
{
    float random = Random.Range(0,1f);
    float j = 0;
    for(int i = 0 ; i < pList.Count ; i++)
    {
        j += pList[i] ;
        if(random > j-pList[i] && random <= j)
            return i;
    }
}

这只是一个最简单的算法原型,你可以基于这个原型来做各种调整,或者是升级,以满足你的游戏项目的实际需求。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2118661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

并发编程:读写锁

一、ReentrantReadWriteLock 1.ReentrantReadWriteLock 是什么&#xff1f; ReentrantReadWriteLock 实现了 ReadWriteLock &#xff0c;是一个可重入的读写锁&#xff0c;既可以保证多个线程同时读的效率&#xff0c;同时又可以保证有写入操作时的线程安全。 public class …

CDGA|做好数据治理的几个策略,不看后悔

在当今这个数据驱动的时代&#xff0c;数据已成为企业最宝贵的资产之一。然而&#xff0c;随着数据量的爆炸性增长和来源的多样化&#xff0c;如何有效地管理和利用这些数据&#xff0c;即数据治理&#xff0c;成为了企业面临的重要挑战。 良好的数据治理不仅能够提升数据质量&…

中医世家龚洪海博士:用医术和真诚赢得患者的心

医生&#xff0c;可以说是世界上最伟大的人&#xff0c;他们以高超的医疗技术和崇高的职业道德&#xff0c;以患者为先&#xff0c;为患者带来生的奇迹&#xff0c;抚平患者的病痛&#xff0c;是生命忠诚的的捍卫者。明代御医龚廷贤龚氏传人龚洪海博士就是这样一个&#xff0c;…

英国数字化战略下的人工智能时代:挑战与发展机遇

文章目录 前言一、英国数字化转型初探二、数字化转型重点举措1、 供应链2、金融市场3、数字基础设施4、科学研究5、数字技术赋能绿色转型6、数字包容性7、国际合作:重视与发展中国家合作8、完善数字民主建设三、战略启示前言 后疫情时代,英国正面临包括首相更迭频繁导致的内…

AnyGPT:多模态语言模型,任意处理语音、图像和音乐

人工智能咨询培训老师叶梓 转载标明出处 大模型的能力大多局限于文本处理&#xff0c;而现实世界环境本质上是多模态的&#xff0c;涉及视觉、语言、声音和触觉等多种感知渠道。为了使LLM能够更好地模拟人类的多模态感知能力&#xff0c;复旦大学的研究团队提出了AnyGPT&#x…

巴西美客多广告打法,这样开广告有泼天的流量!

听说做巴西美客多本土店不需要开广告就有流量&#xff1f;这是真的吗&#xff1f;相信这对于一直在做欧美市场的卖家来说&#xff0c;简直是不敢相信&#xff0c;What? 有运营巴西美客多本土店铺多年的卖家说&#xff0c;确实是不开广告也能获得不错的流量&#xff0c;过去几…

汽车EDI:montaplast EDI对接

Montaplast 是一家总部位于德国的全球知名汽车零部件供应商&#xff0c;专注于高精度塑料部件的设计、开发和生产。公司成立于1958年&#xff0c;主要为汽车行业提供轻量化、高性能的塑料解决方案。Montaplast 以其在注塑成型技术、表面处理和装配技术方面的专业能力而著称&…

vue3 项目中使用git

一.vue项目创建 二.创建本地仓库并和远程仓库进行绑定 在vue3-project-git 项目文件夹下 初始化一个新的Git仓库&#xff0c;可以看到初始化成功之后就会出现一个.git文件&#xff0c;该文件包含所有必要的 Git 配置和版本控制信息。 创建远程仓库: 打开gitee ,点击右上角 ‘…

电源模块检测方法之功率因数的测量

在设计和维护电源系统时&#xff0c;功率因数是一个不可忽视的参数。那么功率因数是什么呢&#xff1f;怎么测试电源模块的功率因数呢&#xff1f;又该如何提高功率因数呢&#xff1f;让我们一起来探讨吧。 一、功率因数概述 功率因数是指交流电路中有功功率和视在功率的比值&a…

安全产品概述

防火墙 防火墙的核心功能是过滤掉有害的流量&#xff0c;在专用网络和公共网络之间建立保护屏障。防火墙过滤通常基于一系列规则&#xff0c;如 IP 地址、域名、协议、端口号、关键字等&#xff0c;对入站和出站的流量进行过滤。这些规则也称为访问控制列表&#xff08;ACCESS…

假装勤奋,无效努力!看了上热搜的北京十一学校,我更加理解了衡水家长们的无奈——早读(逆天打工人爬取热门微信文章解读)

怀念伟大 引言Python 代码第一篇 看了上热搜的北京十一学校&#xff0c;我更加理解了衡水家长们的无奈第二篇 股市路注定是孤独的结尾 引言 不断尝试新的改变 发现最近把很多时间用在股票上 但是总结复盘却没有多 所以得改 一般是看一个视频讲解 然后一不小心就睡着了 日复一日…

超轻量级、支持插件的 .NET 网络通信框架

目录 前言 项目介绍 项目环境 项目功能 1、功能导图 2、项目文档 项目特点 1、传统 IOCP 与 TouchSocket 的 IOCP 模式 2、数据处理适配器 3、兼容性与适配 项目使用 1、Nuget安装 2、TcpService 3、TcpClient 4、TcpClient 断线重连 项目案例 1、工程师软件工…

elementUI之不会用

form表单注意事项 <template><div class"container"><el-form :model"form" label-width"80px" :rules"RulesName" ref"loginForm"><el-form-item label"姓名" prop"username">…

【阿雄不会写代码】全国职业院校技能大赛GZ036第九套

也不说那么多了&#xff0c;要用到这篇博客&#xff0c;肯定也知道他是干嘛的&#xff0c;给博主点点关注点点赞&#xff01;&#xff01;&#xff01;这样博主才能更新更多免费的教程&#xff0c;不然就直接丢付费专栏里了&#xff0c;需要相关文件请私聊

软件测试外包公司分享:软件产品鉴定测试内容和作用

软件产品鉴定测试是指对软件在不同阶段进行系统性、全面性的检测与评估&#xff0c;确保产品在功能、安全性、性能等方面达到既定标准。这对企业选择、验证及应用软件产品至关重要。 软件产品鉴定测试的内容主要包括以下几项&#xff1a;   1、功能测试&#xff1a;验证软件…

Sumsub 获评 Gartner® “新兴技术:针对在线欺诈预防的 GenAI 安全服务”代表性供应商

AI 为业务增长提供了巨大机遇。但也带来了重大威胁&#xff0c;比如可能会导致企业蒙受数百万美元损失的深度伪造攻击。 近日&#xff0c;全球领先的验证平台 Sumsub 被权威机构 Gartner 列入《新兴技术&#xff1a;针对在线欺诈预防的 GenAI 安全服务》报告的代表性供应商名单…

十二、C语言:内存函数

一、memcpy 1.1 使用 void * memcpy ( void * destination, const void * source, size_t num ); 1.前两个参数类型都是void*&#xff0c;因此可以拷贝任何数据类型&#xff1b; 2.num参数为要拷贝的字节数&#xff1b; int main() {char arr[10] "abcdef";char b…

第三届828 B2B企业节开幕,大腾智能携手华为云共谱数字化新篇章

8月27日&#xff0c;由华为携手上万家伙伴共同发起的第三届828 B2B企业节在贵州正式开幕。 本届企业节推出上万款数智产品&#xff0c;600多个精选解决方案&#xff0c;旨在融通数智供需&#xff0c;加速企业智改数转&#xff0c;助推中国数智产业实力再升级。中共贵州省委副书…

英文外链代发服务靠谱吗?

英文外链代发服务的可靠性因供应商和服务类型而异。外链代发服务的主要目标是提高网站在搜索引擎中的排名&#xff0c;通过增加指向目标网站的链接数量和质量来实现。然而&#xff0c;并不是所有的外链代发服务都是可靠的&#xff0c;很多外链都是只管发&#xff0c;但是发了有…

你真的理解 Kubernetes 中的 requests 和 limits 吗?

你真的理解 Kubernetes 中的 requests 和 limits 吗&#xff1f; https://www.cnblogs.com/kubesphere/p/14632890.htmlhttps://www.cnblogs.com/kubesphere/p/14632890.html在 Kubernetes 集群中部署资源的时候&#xff0c;你是否经常遇到以下情形&#xff1a; 经常在 Kubern…