从0到360之间产生一个随机数,数字越小出现的概率越大

解决方案 »

  1.   

    Random   r   =   new   Random(); int   throw   =   r.next(0,   100); int   val   =   0; if   (throw   <   15) 

            val   =   r.next(0,   4); 

    else   if   (throw   >   84) 

            val   =   r.next(7,   11) 

    else 

            val   =   r.next(4,   7); 

      

  2.   


               Random red = new Random();
               Response.Write(red.Next(0, 360).ToString() + "<br>");
               Response.Write(red.Next(0, 360).ToString() + "<br>");
               Response.Write(red.Next(0, 360).ToString() + "<br>");http://msdn.microsoft.com/zh-cn/library/2dx6wyd4.aspx
      

  3.   

    多用几个随机
    int a=rand(0,360)
    int c=rand(0,360)
    int b=rand(0,360)
    取a b C 中最小的一个
    一般两次随机就能够实现了 3次360就不好出现了
      

  4.   


    这个要求出现概率跟数字本身有关系的,
    比如,总数为1到360的和设为a,1出现的概率为360/a,360出现概率为1/a
      

  5.   

    这个要求出现概率跟数字本身有关系的,
    比如,总数为1到360的和设为a,1出现的概率为360/a,360出现概率为1/a1 为360/a 360为 1/a 
    请问 2-359的概率为0?
      

  6.   

    这个要求出现概率跟数字本身有关系的,
    比如,总数为1到360的和设为a,1出现的概率为360/a,360出现概率为1/asum=0+....+359;
    int x=rand(0,sum)
    x=x%360;
    x=x+1;
    大概思路是这样的 你看看怎么调整下x=0 的时候的情况 
      

  7.   

    360,359-------2,1
    等差数列求合得到sum值rad(1,sum)就ok了,剩下的就是判定他在那个和值区间内
      

  8.   


    Random rd = new Random();int p = rd.Next(1, 10);result = rd.Next(0, 361 / p);Console.WriteLine(result);如果 P = 10 就随机 0-36 
    如果 p = 9  就随机 0-40
    如果 p = 8 就随机 0-45
    .....
    如果 p=1 就随机 0-360
      

  9.   

    说个蠢办法,建一个数组,把1-360按概率往里扔,之后用random给出数组下标。
      

  10.   

     Random ran = new Random();
            int[] myarry =new  int [10];
            int n =0;
            for (int i = 0; i < myarry.Length; i++)
            {
                myarry[n] = ran.Next(0,360);
                n++;
            }
            Array.Sort(myarry );
                foreach (int em in myarry)
                {
                    Response.Write(em +"," );
                }
      

  11.   

    int a=rand(1,360)
    int b=rand(1,360)
    取a b  中最小的一个想了下 完全可以满足楼主的要求出现 360 360的概率是 1/(360*360)
    出现 1的概率是 1/360 
    1出现的概率不就是360出现的概率的360倍吗 
      

  12.   

    nnd 这是一个数学概率问题 楼主为什么要出个数学问题呢 我概率本来就不好
    完了 脑子里纠结了 
      

  13.   

    结贴 其实也就是一个数列求和问题n的概率是(361-n)/sum,求前n项的和
      

  14.   

    Random ran = new Random()int num = ran.Next(1,360)int getNum = ran.Next(1,num)