如下程序在paint()中调用,结果“q”值全部相同。但在debug时,"q"值为0、1均匀分布。
请问这是为什么,应如何改进。我用的是jbuilder2005.public void rndtest(int n,Graphics g)
 {
     Random rnd1=new Random();
     if (n<10)
     {n++;
     int q=rnd1.nextInt(2);
     int y=n*10;
     g.drawString(Integer.toString(q),40,y);
     rndtest(n,g);
 }
 }

解决方案 »

  1.   

    把 Random rnd1=new Random();放到构造函数里。
      

  2.   

    public static void main(String[] args) {
         Random rnd1=new Random();
         for (int n=0;n<10;n++)
         {
         int q=rnd1.nextInt(2000);
         if (q < 1000) q = 0;
         else q = 1;
         System.out.println(q);
     
         }

    }
      

  3.   

    缺省是时间做种子
     public Random() { this(System.currentTimeMillis()); }