比如:5,8,15,12,20,40 ,其和为100。想随机抽取8的概率为8%,抽取20的概率为20%

解决方案 »

  1.   

    设定一个含有100个元数的数组int a[100];
    从1到100,在付初值时
    a[0]=a[1]=a[2]=...=a[4]=5;
    a[5]=a[6]=....=a[12]=8;
    ....
    a[60]=a[61]=...=a[99]=40;
    然后产生1到100之间的随机数,这样以此随机数作为数组的下标就可以得到你想要的结果。注意这儿的随机数时均匀的。
      

  2.   

    感谢:zhangyilan(数字通信),可以得到。
    另外,如果是:5,8,15,12,20,40 ,45,55其和为200。想同时随机抽取两个数,其中每个数符合这样的条件,抽取8的概率为8%,抽取20的概率为20%,但同时抽出的两个数不能相同,有办法保证这样的概率吗?