美文网首页
概率计算的执行

概率计算的执行

作者: 奔跑的佩恩 | 来源:发表于2021-04-07 08:41 被阅读0次

前言

在之前我讲过了一个概率执行的工具类,但此工具类只能用于计算某件事有多少概率会执行。由于我们有时会有这样一种需求:某个事件在一个特定集合中概率执行的可能性。很显然,之前的概率执行方法并不能直接处理这种场景,如果硬要处理的话,也要把此集合中所有概率转化成和为1,并重新计算集合中每个事件的概率才行。但是这样转化起来比较麻烦,于是我在之前的基础上,新添加了基于集合中每个概率事件执行的可能性的方法,下面就来具体看看这个工具类RandomUtil的使用吧。

今天涉及以下知识:

  1. RandomUtil 中方法简介
  2. RandomUtil 在Activity中的使用
  3. 运行效果图和项目结构图
  4. RandomUtil 源码

先来波效果图

===temp=1885  tempRate=4000.0
=====总概率为1,该执行概率为0.6,是否会执行:否
========maxRate=1.0999999999999999
===temp=1173  tempRate=7999.999999999998
===做其他的事===

一. RandomUtil 中方法简介

RandomUtil作为一个概率执行的工具类,具有以下几个方法:

    /***
     * 随机生成 [start,end] 之间的数字
     *
     * @param start
     * @param end
     * @return
     */
    public static int getRandomInt(int start,int end)

    /***
     * 根据概率执行
     *
     * @param rate 概率范围[0.0000,1.0000] 小数点后保留4位小数
     * @return true:执行   false:不执行
     */
    public static boolean getProbability(double rate)

    /****
     * 根据概率执行
     *
     * @param rate  概率范围[0.0000,maxRate] 小数点后保留4位小数
     * @param maxRate 最大概率范围
     * @return true:执行   false:不执行
     */
    public static boolean getProbability(double rate,double maxRate)

    /***
     * 给一个集合(map)设置item,并给每个item设置执行概率
     *
     * @param map 集合
     * @param key item
     * @param probability 概率
     */
    public static void putProbability(Map<String,Double>map,String key,double probability)

    /***
     * map中单个key根据概率是否执行
     *
     * @param key
     * @return true:执行   false:不执行
     */
    public static boolean getProbabilityByKey(Map<String,Double> map, String key)

二. RandomUtil 在 Activity 中的使用

下面贴出RandomUtilActivity中使用时计算单个事件单个事件在集合中执行可能性的主要代码:

               //计算单个概率,总概率为1
               boolean flag = RandomUtil.getProbability(0.6);
               if (flag) {
                   LogUtil.i("=====总概率为1,该执行概率为0.6,是否会执行:是");
               } else {
                   LogUtil.i("=====总概率为1,该执行概率为0.6,是否会执行:否");
               }

               //计算一组数据中单个item执行的概率
               Map<String,Double>map=new HashMap<>();
               //设置集合
               RandomUtil.putProbability(map,"逛街",0.6);
               RandomUtil.putProbability(map,"看电影",0.2);
               RandomUtil.putProbability(map,"吃饭",0.3);
               //是否吃饭
               boolean eatFlag=RandomUtil.getProbabilityByKey(map,"吃饭");
               if(eatFlag){
                   LogUtil.i("===去吃饭===");
               }else{
                   LogUtil.i("===做其他的事===");
               }

三.运行效果图和项目结构图

效果图:

===temp=1885  tempRate=4000.0
=====总概率为1,该执行概率为0.6,是否会执行:否
========maxRate=1.0999999999999999
===temp=1173  tempRate=7999.999999999998
===做其他的事===

项目结构图


项目结构图.png

四. RandomUtil 源码

RandomUtil源码如下:

相关文章

  • 概率计算的执行

    前言 在之前我讲过了一个概率执行的工具类,但此工具类只能用于计算某件事有多少概率会执行。由于我们有时会有这样一种需...

  • 概率计算

    一般笔试面试中常会有概率问题的出现(算法较多),他们有这样的规律: 概率的应用有两块: 现在我们来看案例: 案例1...

  • 计算概率

  • 随机算法的应用

    用于计算概率,无需通过复杂的数学公式进行具体场景的概率计算,只需用随机数模拟出相关场景,即可得到对应概率。 计算生...

  • 刘嘉《概率论》5

    第2章概率计算法则 2.1概率计算:加法法则和乘法法则 多个随即事件概率计算的本质——两个基本法则:第一是加法法则...

  • 概率与计算

    本文首发在我的博客:《概率与计算》 这是一个挖坑贴,随机算法是大数据算法中的重要的算法,《概率与计算》是讲随机算法...

  • (六) 概率算法

    # 概述 前面所讨论算法的每一计算步骤都是确定的,而本次所讨论的概率算法允许算法在执行过程中随机地选择下一个计算步...

  • 概率计算:加法法则和乘法法则怎么

    共读章节: 第2章 概率计算法则 2.1 概率计算:加法法则和乘法法则怎么用 ➖➖➖➖➖➖➖➖➖➖➖➖➖➖➖ ️第...

  • 一弯浅笑,一辈子守候

    有人粗略计算过,两个人相遇的概率,仅为0.00487,而相爱,概率则小到无法计算: 0.000049×0.0000...

  • 朴素贝叶斯

    简介 P(X)由全概率公式计算 适用于知道先验概率,需要计算后验概率 优点:数据集不需要很大 缺点:如果特征不是独...

网友评论

      本文标题:概率计算的执行

      本文链接:https://www.haomeiwen.com/subject/qrtekltx.html