91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何實現JAVA隨機數隨機字母

發布時間:2020-07-29 12:48:28 來源:億速云 閱讀:1651 作者:小豬 欄目:編程語言

小編這次要給大家分享的是如何實現JAVA隨機數隨機字母,文章內容豐富,感興趣的小伙伴可以來了解一下,希望大家閱讀完這篇文章之后能夠有所收獲。

今天我們談一談JAVA中的隨機數

隨機數 ——Math.random()

0.0 在Math類中存在一個random()方法,用于產生隨機數字,這個方法生成在0.0<=生成數<1.0

0.1那么它默認的生成的數顯然在有些時候是滿足不了我們的,我們來看看它的升級版

類型返回值
(int)(Math.Random()*n)0<=返回值<n
m+(int)(Math.Random()*n)m<=返回值<m+n

隨機數 ——字母

0.2 使用Math類的random() 方法也可以隨機生成字符,(a----z)
(char)('a'+Math.random()*('z'-'a'-1));

0.3 A-Z與a-z的寫法是不一樣的(char)(cha1+Math.random*(char2-cha1+1));

隨機數 ——Random

0.4 除了Math 類,JAVA中還有Random可以創建數組。

Random c = mew Random;
Random c = new Random(seedValue);

c : Random類對象;
seedValue : 隨機數生成的種子;

0.6 下面是幾個常用的方法

類型返回值
public int nextInt返回一個隨機整數
public int nextInt(int n)0<=返回值<0
public long nextLong()返回一個隨機長整型數
public boolean nextBoolean()返回一個隨機布爾型值
public float nextFloat()返回一個浮點型
public doublle nextDouble()返回一個雙精度值

微信搶紅包

我想大家一定在微信里搶過紅包或者發過紅包,今天我們就帶領大家用JAVA制作一個微信的小程序。

1.0 我們先創建一個控制掃描器,輸入顯示發出的金額與紅包個數

 System.out.println("--------微信搶紅包---------");
 	 Scanner sc = new Scanner (System.in);
 	 System.out.println("金額¥");
 	 double total = sc.nextDouble();
 	 System.out.println("發出紅包個數");
 	 int num = sc.nextInt();

1.1 我們的紅包在散發出去的時候是不會出現 0¥ 所以我們先確定他的最小值并創建隨機數。

Random c = new Random();
double min = 0.01;

1.2 隨后我們用一個 for 循環來循環發放我們的紅包;

for(int i=1;i<=num;i++)

1.3 我們所搶的紅包并不是平均發放的,它有最大值最小值,所以我們要創建一個最大值和最小值
我們的最大值如果等于我們紅包錢數總數,那我們的其他的紅包豈不就是沒有錢了,所以,我們需要一個公式,

最大金額 =可分配金額 - (紅包個數 - 已發出的紅包數)*紅包最小金額
double max = total - (num - i)* min;

1.4 我們并不是將所有的錢放到紅包里所以我們再定義一下紅包的范圍

double range = max - min;//

1.5 現在我們開始計算應該放多少錢了,這一步有一點點繞。

double money = c.nextInt(range);

但我們在編譯器里我們會發現報錯了

如何實現JAVA隨機數隨機字母

這是因為nextInt()他的返回值(參數)是一個整型值,而我們的rangemoney他們都是 double 值,這樣當然會報錯了。

那我們怎么改呢?

例如我們的range是23.56這是一個double值,我們將range*100 23.56*100=2356,隨后我們再將它強制轉換成整數

double money = c.nextInt((int)range*100);

但我們最終的結果為2356¥,顯然這是將我們的紅包是在無形中放大了100倍,這樣誰還會愿意發紅包呢?咋解決,很簡單我們之前 23.56*100 我們再除上100是不是就右變回去了,最后啊我們再返回一個double值就可以了

double money = (double)c.nextInt((int)range*100)/100;

這樣我們就在range的范圍里獲取了隨機的金額。

1.6 我們之前說了nextInt()這個方法它有一個弊端,它的返回值范圍是0<=返回值<0,也就是說我們的紅包還會出現0¥。
為了防止0¥的出現,我們定義一個 finalMoney

double finalMoney = money + min;

這才是我們最后的金額

1.7 上面是我們第一個紅包所發出的金額,那我們的第2第3第num個紅包的金額是多少呢?

total = total - finalMoney;

現在的total才是我們下一個紅包的 可分配金額。
隨后我們輸出

System.out.println("第"+i+"個紅包金額"+String.format("%.2f",finalMoney)+"¥");

(%.2f意思是保留兩位小數)
最后啊我們將掃描器關掉

sc.close();

1.8 來我們試一下

如何實現JAVA隨機數隨機字母

這就是我們的微信搶紅包的游戲。

1.9完整代碼:

public static void main(String[] args) {
 	 System.out.println("--------微信搶紅包---------");
 	 Scanner sc = new Scanner (System.in);
 	 System.out.println("金額¥");
 	 double total = sc.nextDouble();
 	 System.out.println("發出紅包個數");
 	 int num = sc.nextInt();
 	 
 	 double min = 0.01;//紅包最小金額
 	 Random c = new Random();//創建隨機數
 	 
 	 for(int i=1;i<=num;i++) {
 		 /*
 		 * 最大金額 =可分配金額 - (紅包個數 - 已發出的紅包數)*紅包最小金額
 		 */
 		 double max = total - (num - i)* min;
 		 double range = max - min;//
 		 
 		 double money = (double)c.nextInt((int)(range*100))/100;
 		 double finalMoney = money + min;
 		 total = total - finalMoney;
 		 System.out.println("第"+i+"個紅包金額"+String.format("%.2f",finalMoney)+"¥");
 	 }//保留兩位小數
 	 
 	 sc.close();
 	 
	}

看完這篇關于如何實現JAVA隨機數隨機字母的文章,如果覺得文章內容寫得不錯的話,可以把它分享出去給更多人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

平顺县| 盖州市| 涟水县| 革吉县| 茌平县| 兴业县| 类乌齐县| 建阳市| 林芝县| 富民县| 闸北区| 六盘水市| 托克托县| 高要市| 贵定县| 鄂托克旗| 景洪市| 永宁县| 武威市| 吐鲁番市| 宜州市| 庄浪县| 蕉岭县| 邹平县| 桑植县| 池州市| 阿巴嘎旗| 长垣县| 南岸区| 定襄县| 黄平县| 台山市| 漠河县| 封丘县| 获嘉县| 兴义市| 芜湖市| 桃江县| 九台市| 和龙市| 锡林郭勒盟|