zoukankan      html  css  js  c++  java
  • 随机数概率解决思路

    C#中可以实现,也比较好维护,很方便修改,思路很简单,返回1-100之间的随机数,如果在60之间  
      那么就确定是60%概率中的分支,如果在60+25之间则执行概率25的分支……  
       
      //参数分别为3种概率所对应的100分数,本例中value=60,value2=25,value3=15  
      private   int   panduan(int   value1,int   value2,int   value3   )      
      {  
      System.Random   rm=new   Random();  
      int   result;  
      int   rmvalue   =   rm.Next(1,101);  
      if   (rmvalue<=value1)  
      {  
      result=1;  
      }  
      else   if(rmvalue<=value1+value2)  
      {  
      result=2;  
      }  
      else  
      {  
      result=3;  
      }  
      return   result;  
       
      }  
       
      //调用函数判断显示哪个  
      if   (panduan(65,25,15)==1)  
      {  
      }  
      else   if(panduan(65,25,15)==2)  
      {  
      }  
      else  
      {  
      }  

    1.   数字生成的概率相同,   学过离散数学的应该知道,   指定范围内的随机数中间的出现概率高,两头的低.   要想得到的数字的概率相同,   只需将范围扩大后取其中间的部分即可.   例如:   要0-6的随机数,   首先,生成0-54的随机数,   然后,   从生成的数字中取24-30之间的数字,   在减24.   这样一来,   所得到的随机数的每个数的概率基本相同.  
      2.   指定每个数字出现的概率.   这种实现也不难,   首先声明100个长度的数组,   将制定的数字按比例放到里面.   其次,   按1所说的方法生成0-99之间相同概率的数.然后将相应坐标里的数取出返回.   例如:   生成0-1的随机数(其中,   0出现的概率是30%,1是70%).    

           I)     int   a[10]   =   {   0,   0,   0,   1,   1,   1,   1,   1,   1,   1};  
          II)     int   iIndex   =   GetSameRandam(0,   9);  
        III)     return   a[iIndex];

    关机命令: System.Diagnostics.Process.Start("shutdown", "-f -s");

  • 相关阅读:
    Linux 任务计划
    Linux 进程及作业管理
    算法-动规
    算法-递归
    继承自string 的MyString
    魔兽2-装备
    [小甲鱼]入门学习python笔记 【魔法方法】
    [小甲鱼]入门学习python笔记 【类与对象】
    魔兽1 -备战
    讨厌的大整数加法
  • 原文地址:https://www.cnblogs.com/1011004519/p/1384695.html
Copyright © 2011-2022 走看看