删除背后的“故事/代码”,只是根据要求提出一般性问题。
假设我有一个数组
int[] anArray = { 0, 1, 20, 50, 100 };
然后我说我生成一个随机数。
RandomNumber(100) - returned 73
现在,我想获取数组的索引并使其从100开始,以便有机会出现。
int value = 100 - anArray[index]
从这里开始,我想计算随机数是否大于值
if(returnedRandomNumber >= value)
System.out.println("Sucess");
好吧,这一切都很好,但是,这就是问题所在。假设returnRandomNumber等于100,它将打印出“Success”5次,因为这是数组的长度,返回的数量总是大于该值。
我想要做的只是在aray的索引最低时打印成功。
例如:
int anInt = GenerateRandomNumber(1 - 100); // Returned 77
for(int i = 0; i < anArray.length; i++) {
int chance = 100 - arrayIndex[i];
if(randomNumberGenerated >= chance) {
doStuff();
}
}
上面代码的问题(除了它是作为一个例子写的并且不可编译的事实)是如果生成的随机数是返回100,它只要anArray [doRrray执行doStuff()) ]变量有剩余长度。
相反,我要求的是,这只是最不可能的机会。
所以,让我说我再次滚动100,我只想返回anArray [0]的值,因为它具有整个数组的最低值,但是我该怎么做呢?
希望这个问题有道理。