zoukankan      html  css  js  c++  java
  • 根据离散概率随机返回数组中的项

    a[] :

    0

    1

    2

    3

     

    0.1

    0.2

    0.3

    0.4

     

     

    cumsums[]:(cumsums[i]表示返回值小于i的概率)

    0

    1

    2

    3

    4

    0.0

    0.1

    0.3

    0.6

    1.0

    static double cumsums[];
    
    void GetCumsums(double a[],double cumsums[],int length) (length=5)
    {
    	cumsums[0] = 0.0;
    
    	for(int index = 1;index < length;index++)
    	{
    		cumsums[index] = cumsums[index - 1] + a[index - 1];
    	}
    }
    
    int Discrete(double cumsums[],int length)
    {
    	double probability = ((double)rand()) / RAND_MAX;
    	
    	int low = 0;
    	int high = length - 1;
    	int middle;
    
    	while(low + 1 < high)
    	{
    		middle = (low + high) / 2;
    
    		if(cumsums[middle] < probability)
    		{
    			low = middle;
    		}
    		else
    		{
    			high = middle;
    		}
    	}
    
    	return low;
    

      

  • 相关阅读:
    C#开发微信门户及应用(6)--微信门户菜单的管理操作
    C#开发微信门户及应用(5)--用户分组信息管理
    Django
    Django
    Django
    Django
    Django
    Django
    6.1
    Django
  • 原文地址:https://www.cnblogs.com/laifeiyao/p/3473803.html
Copyright © 2011-2022 走看看