3 回答

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超6個(gè)贊
否,Random().nextInt(bound)
僅生成從 0 到您指定的數(shù)字的正數(shù)。如果你想要一個(gè)負(fù)數(shù),你需要將隨機(jī)數(shù)乘以-1。
int number = new Random().nextInt(bound) * -1;
Random().nextInt()
另一方面可以返回負(fù)數(shù)。

TA貢獻(xiàn)1893條經(jīng)驗(yàn) 獲得超10個(gè)贊
如果您使用 java.util 包中的 Random 類,您應(yīng)該提及您期望的數(shù)字類型,同時(shí)設(shè)置上限。您的答案將是從 0 到小于上限的任意值。Random 類中的 nextInt() 返回從 0 到參數(shù) 1 的整數(shù)值。類似地,我們可以使用 nextDouble 和 nextLong() 等方法。返回的值始終為正值或零。現(xiàn)在,如果您需要負(fù)值,我們可以隨機(jī)設(shè)置負(fù)數(shù)計(jì)數(shù)器。比如說,隨機(jī)生成另一個(gè)整數(shù)值并檢查它是奇數(shù)/偶數(shù)以否定該數(shù)字。
另一種方法是使用 Math.random() 方法。此方法返回一個(gè)等于或大于 0 且小于 1 的數(shù)字。我們可以對(duì)整數(shù)隨機(jī)值使用類型轉(zhuǎn)換,否則默認(rèn)情況下我們會(huì)得到雙精度值。PS 查看oracle文檔以更好地理解這些類和方法。

TA貢獻(xiàn)1943條經(jīng)驗(yàn) 獲得超7個(gè)贊
如果您需要積極和消極的混合,您可以使用如下內(nèi)容:
int number = new Random().nextInt(bound);
if (number % 2 == 0) {
number *= -1;
}
添加回答
舉報(bào)