Write an efficient algorithm to print the following two outputs
getrand100()という名前の事前定義された関数が与えられます。この関数は、1から100までの1つの乱数である整数を返します。この関数は何度でも呼び出すことができますが、この関数は非常に多くのリソースを消費することに注意してください。他のランダムジェネレーターは使用できません。getrand100()の定義を変更することはできません。
int getrand100(){
Random rand = new Random();
return (1+rand.nextInt(100));
}
- 出力1:番号1〜20をランダムな順序で出力します。(20個の乱数ではありません)
- 出力2:番号1〜200をランダムな順序で出力します。(200個の乱数ではありません)
ノート:
- 私。すべての番号は1回だけ印刷する必要があります。
- ii。番号リストにパターンがあってはなりません。リストは完全にランダムである必要があります
。つまり、すべての数字はどの場所にも同じ確率で表示されます。 - iii。getrand100()を何度でも呼び出して、1から100までのランダムな数値を取得できます。
- iv。getrand100()以外のランダムジェネレーター関数は使用できません。