在函数中取当前时间中的毫秒级数s(0-999),当<=0s<800时,输出1,否则输出2;
当然,为了避免处理速度的影响,还可以找更好的算法,但思路大致一样!!

解决方案 »

  1.   

    int a=0;
    for (int i=0;i<100;i++)
    {
     if(Math.random()*100<80)
       a=1;
     else 
       a=2;
     System.out.println(a);
    }
      

  2.   

    要做成函数,并在外部调用,就这样写
    class  temp
    {
      public int play()
      {
        int a=0;
        if(Math.random()*100<80)
          a=1;
        else 
          a=2;
        return a;
      }
      public static void main(String[] args)
      {
        temp t = new temp();
        for (int i=0;i<100;i++)
        {
          System.out.println(t.play());
        }
      }
    }
      

  3.   

    構造特定的隨機分布最好是從已有的隨機分布入手,進行轉化.
    推荐wjfxiao(野渡无人舟自横) 的方法,正解.
    考慮zhang21cnboy(事了抚衣去,不留身与名)的建議,可以做如下修改
    public int play()
      {
        int a   = 0;
        int tmp = Math.random();
        if (tmp>40 && tmp<60)
          a = 1;
        else 
          a = 2;
        return a;
      }