java學習日記 隨機數

1.隨機數的生成java

第一種方式:運用工具包java.lang.util.Random來生成數組

private static void suiji()
    {
        Random r=new Random();
        int ival;
        for(int i=0;i<10;i++)
        {
            ival=r.nextInt(50);
            System.out.println(ival);
        }
    }

代碼的意思是:生成0-50隨機數,存在重複的。dom

第二種方式:用math類下的函數

private static void suiji2()
    {
        double dval;
        long lval;
        int ival;
        for(int i=0;i<10;i++)
        {
            dval=Math.random()*100;
            //1.用math函數四捨五入
            //ival=Math.round(dval);
            //2.用類型強制轉換,將double轉換成int
            ival=(int)Math.round(dval);
            System.out.println(ival);
        }
    }

代碼採用 math提供的方法random獲取0-1之間浮點數。而後乘以多少 獲取相應範圍內數,好比100,則小數點右移兩位,獲取0-100之間的數,可是獲取的是浮點數,帶有小數,而後用四捨五入函數 round或者int強制類型轉換獲取整數,但也是含有重複的數。工具

第三種:則是利用UUID碼的生成:ui

private static void suiji3()
    {
        for(int i=0;i<10;i++)
        {
            String uuid=UUID.randomUUID().toString();
            System.out.println(uuid);
        }
    }

代碼生成永不重複uuid碼。spa

咱們如今針對前兩個實現生成不重複的隨機數。code

 

private static void suiji4(int n,int m)
	{
		Integer arr[]=new Integer[n];
		Random r=new Random();
		
		int index=0;
		int ival;
		while(true)
		{
			boolean tag=false;
			ival=r.nextInt(m);
			for(int i=0;i<index;i++)
			{	
				if(arr[i] == ival)
				{
					tag=true;
					break;
				}
			}
			if(!tag)
			{
				arr[index++]=ival;
			}
			if(index == n)
			{
				break;
			}
		}
		Arrays.sort(arr);
		for(int a:arr)
		{
			System.out.println(a);	
		}
		
	}

  利用一個標記位 Boolean tag 來實現判斷該數組是否含有剛生成的隨機數,沒有則添加進數組,有則重新生成,傳遞兩個參數 ,打印n個m範圍內的不重複隨機數。blog

相關文章
相關標籤/搜索