我正在创建一个程序,每次您玩时都会生成一个随机的宾果卡。我不知道如何不获得重复的随机数。我总是至少得到两个相同的数字。我尝试了许多不同的方法,但这是我最终得到的结果,并且仍然重复。请帮忙!
job("try-to-pass-array") {
def sampleArray = ["one","two","three","four"]
description("this is to test a element type")
keepDependencies(false)
parameters {
activeChoiceReactiveParam('NUMBERS') {
description('Choose numbers for which build has to be generated')
choiceType('MULTI_SELECT')
groovyScript {
script('return $sampleArray')
fallbackScript('"fallback choice"')
}
}
}
disabled(false)
concurrentBuild(false)
steps {
shell('''
echo $NUMBERS
''')
}
}
答案 0 :(得分:2)
假设您可以导入:
import java.util.ArrayList;
import java.util.Collections;
只需按顺序创建一个卡片组-然后将其随机化即可。从列表中删除一个项目,这样就不能多次选择(弹出)它。
ArrayList<Integer> cards = new ArrayList<Integer>();
// create a list in order
for (int i = 1; i < 14; i++) {
cards.add(i);
}
Collections.shuffle(cards); // randomize
for (int i = 1; i < 14; i++) {
cards.remove(i-1); // pop
// do something with the card
}
答案 1 :(得分:0)
如果您只需要随机的double
,则可以在循环外实例化一个Random
,并继续使用与random.nextDouble()
相同的实例来获取伪随机数。
Random random = new Random();
for (int p = 0; p < b.length; p++) {
b[p] = (int) (random.nextDouble() * 14 + 1);
do {
b[1] = (int) (random.nextDouble() * 14 + 1);
} while (b[1] == b[0]);
...
}