例如,如果我有这样的ints数组:
int[] list = {1, 4, 2};
我想从这三个数字中选择一个,但是更频繁地选择更大的值:
1 get chosen 1/7 of the time
4 gets chosen 4/7 of the time
2 gets chosen 2/7 of the time
如果Java中还没有函数,那么如何编写函数呢?
编辑:我正在寻找一个有效的解决方案,O(n)或更好。
我将在许多线程中多次运行这段代码。仅仅构建一个新列表是不够的。
是否可以使用适应值来评估群体中的每个个体,而不需要像下面的伪代码那样找到概率
For all members of population
sum += fitness ( member)
End for
Loop until new population is full
Do this twice
Number = Random between 0 and sum
Currentfitness = 0.0
For each member in population
C
(除非编写一个适当大小的助手方法,否则这可能是不可能的,但无论如何,我想弄清楚)
假设我有一份清单:
{1,3,6}
我想从这个列表中得到一个随机的项目,但是,我希望它与项目的值直接加权(概率)。所以,如果你运行它100,000次,1将被选择大约10,000次,3将被选择约30,000次,6将被选择60,000次。
我可以通过创建这样的范围来编写一个助手方法:
{1,3,6}
Generate random number between 1(inclusive) and 11(exclusive) (sum of list)
if (number == 0)
{
//1
}
els
我想做一个相对简单的算法,而不是随机选择一个问题。因此,对于每个问题,我都有一个名为numOfCorrect的值,当用户得到正确的答案时,它会加1,如果用户答错了,就会减去1。如下所示: const questions = [
{question: "what is 9 + 10?", numOfCorrect: -5 ...},
{question: "what is the meaning of life?", numOfCorrect: -5 ...},
{question: "how do I get a bias fo
编写具有以下功能的函数:
input: array of pairs (unique id and weight) length of N, K =< N
output: K random unique ids (from input array)
注意:被多次调用时,输出中出现某个Id的频率应该越大,权重越大。例如:在输出中,权重为5的id应该比权重为1的id多出5倍。此外,在编译时应该知道分配的内存量,即不应该分配额外的内存量。
我的问题是:如何解决这一任务?
编辑
谢谢大家的回应!
目前我不知道对的重量是如何影响对的输出频率的,你能给我更清楚的解释吗,“为假人”的工作原理?
我试图将我的数据分割到上,我使用了代码;
```train, validation, test = movie_ratings_spark.randomSplit([6, 2, 2])
高速缓存数据
train.cache()
validation.cache()
test.cache()`
I get the following error;
```javascript
: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.Double
at scala.runtime.Boxes
这个问题解释了星火的随机分裂是如何工作的,,但我不明白second是如何跟踪哪些值被分配到一个拆分中的,从而使这些相同的值不会转到第二个拆分。
如果我们看一下randomSplit的实现:
def randomSplit(weights: Array[Double], seed: Long): Array[DataFrame] = {
// It is possible that the underlying dataframe doesn't guarantee the ordering of rows in its
// constituent partitions each
我有一个随机生成器,我想用它来做4个项目。
我想要发生的是,我希望每个项目都有一个加权的随机性。所以,当然,具有最高随机性的人会比其他人更多地被选中。
我有4个随机生成器可以选择的项目。
Random rand = new Random();
int itemNumber = rand.nextInt(4) + 1;
所以基本上我只是想让每个项目都有权重的能力。我还需要能够在整个程序生命周期中改变权重。因此,每个项目的权重不会是最终的。我有一个池,我用它来回收项目以节省内存,所以当一个项目被选中时,它就会从池中拉出来。
我有这样的代码:
import java.util.Random;
public class Vectors {
public static int[][] vectors() {
return vectors(200,150,12345);
}
// the function creates an array of vectors
// size is the number of vectors
// dim is the dimension
// seed is for the random number generat
我试图实现基于加权元素列表的复杂对象的生成。
ListEnum.kt
enum class Elements(weighting:Int){
ELEM1(15),
ELEM2(20),
ELEM3(7),
ELEM4(18)
// function to get weighted random element
companion object{
fun getRandomElement(seed:Long): Elements{
var totalSum = 0
values().forEach