第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

隨機 4 個小于最大最大值(例如 100_000)的唯一整數的有效算法

隨機 4 個小于最大最大值(例如 100_000)的唯一整數的有效算法

德瑪西亞99 2023-06-08 19:53:41
這是我的嘗試:public static void main(String[] args) {    // Max 100_000    System.out.println(Arrays.toString(randomFour(100_000)));}public static int[] randomFour(int max) {    Random r = new Random();    int[] four = new int[4];    for (int i = 0; i < 4; i++) {        while (true) {            // Random from 1 to max            four[i] = 1 + (int) (r.nextFloat() * max);            boolean dup = false; // check j: 0 -> i-1            for (int j = 0; j < i; j++) {                if (four[j] == four[i]) {                    dup = true;                    break;                }            }            if (dup == false) {                break;            }        }    }    return four;}這個實現工作正常。有沒有更好的算法來解決這個問題(時間和內存消耗),尤其是對于一個非常大的最大值?謝謝!
查看完整描述

1 回答

?
明月笑刀無情

TA貢獻1828條經驗 獲得超4個贊

如果我理解正確的話,你想要一個包含 1 到 100_000(含)之間的 4 個不同隨機整數的數組。

這是一種簡潔的表達方式

int[] four = ThreadLocalRandom.current()
                     .ints(1, 100_001) // 1 is inclusive, 100_001 is exclusive
                     .distinct()
                     .limit(4)
                     .toArray();


查看完整回答
反對 回復 2023-06-08
  • 1 回答
  • 0 關注
  • 129 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號