乱数を生成する関数'generateRan'があります。この機能は変更できません。
int generateRan() {
Random num = new Random();
return (1 + num.nextInt(100));
}
次のようなコードを作成する必要があります。
- 1〜20の数字をランダムに印刷します。
- 数字1〜200をランダムに印刷します。
各番号は1回だけ印刷する必要があります。
この機能は何度でも使用できます。しかし、少し重いので、コードをより最適化したいと思います。
これが私がコーディングしたものです:
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
public class Test {
public static void main(String[] args) {
List<String> list = new ArrayList();
Test t = new Test();
iniList(list, 20);
for (Integer i = ((t.generateRan()) % 20); list.size() > 0; i = 1+((t
.generateRan()) % 20)) {
if (list.contains(i.toString())) {
list.remove(i.toString());
System.out.println(i);
}
}
System.out.println("********");
iniList(list, 200);
for (Integer i = ((t.generateRan()%2)*100 + t.generateRan()) ; list.size() > 0; i = ((t.generateRan()%2)*100 + t.generateRan())) {
if (list.contains(i.toString())) {
list.remove(i.toString());
System.out.println(i);
}
}
}
private static void iniList(List list, int i) {
for (Integer k = 1; k <= i; k++) {
list.add(k.toString());
}
}
int generateRan() {
Random num = new Random();
return (1 + num.nextInt(100));
}
}
現在、1-200のコードは正しくありません。