重複しない5桁の乱数の生成で、とあるコーディングを見つけたのですが、
どのような仕組みになっているのかの詳細が知りたいです。
長いため、乱数のメソッドのみ表示します。
public static String randomNum() { int[] numArray = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 }; for (int i = 0; i < 6; i++) { int a = (int) (Math.random() * 10); int b = (int) (Math.random() * 10); int temp = numArray[a]; numArray[a] = numArray[b]; numArray[b] = temp; } StringBuffer stringBuffer = new StringBuffer(5); for (int i = 0; i < 5; i++) { stringBuffer.append(String.valueOf(numArray[i])); } return stringBuffer.toString();
numArrayという配列を作成し、aとbでランダムな数字を2つ作成してその後どのようにして5桁の数字を導き出しているのかよくわかりませんでした。。
なぜnumArray[a] = numArray[b];という風に配列を入れ替える必要があるのでしょうか?
for (int i = 0; i < 6; i++) { int a = (int) (Math.random() * 10); int b = (int) (Math.random() * 10);
なぜここは6回繰り返す必要があるのでしょうか?
メカニズムについてかみ砕いて教えていただけるととても助かります。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/12/25 06:52