相关疑难解决方法(0)

带或不带替换的加权随机选择

最近我需要从列表中加权随机选择元素,无论是否有替换.虽然有未知加权选择的众所周知和良好的算法,有些用于无替换的加权选择(例如修改算法),我找不到任何好的算法用于替换加权选择.我也想避免使用resevoir方法,因为我选择了列表中的一小部分,这个小部分足够小以容纳在内存中.

有没有人对这种情况下的最佳方法有任何建议?我有自己的解决方案,但我希望找到更高效,更简单或两者兼而有之的方法.

python random algorithm random-sample

47
推荐指数
3
解决办法
3万
查看次数

遗传算法中的轮盘选择

任何人都可以为轮盘选择功能提供一些伪代码吗?我该如何实现这个:

替代文字

我真的不明白如何阅读这个数学符号.我从未接受过任何概率或统计数据.

roulette-wheel-selection genetic-algorithm evolutionary-algorithm

37
推荐指数
5
解决办法
5万
查看次数

根据使用频率随机生成字母?

如何根据普通语音中的使用频率随机生成字母?

任何伪代码都很受欢迎,但Java中的实现会非常棒.否则只是朝正确的方向戳一下会很有帮助.

注意:我不需要生成使用频率 - 我确信我可以很容易地查看它.

java random algorithm pseudocode

10
推荐指数
3
解决办法
4304
查看次数

在矩形区域内均匀生成随机点(某些矩形可能重叠)

假设它给出了一组具有不同区域的矩形,并且一些矩形可能重叠.目标是在矩形区域之间生成均匀的随机点.

Rectangle被定义为一对两点:

  • (x1,y1) - 最左下角;
  • (x2,y2) - 最右上角.

我在不重叠矩形之间均匀分布随机点的策略是, - 根据区域随机选择一个矩形(现有解决方案):

   for(int i = 0; i < rectangles.length; i++) {
      int area = (rectangles[i].x2 - rectangles[i].x1) * 
                 (rectangles[i].y1 - rectangles[i].y2);
         if(rand.nextInt(total + area) >= total) {
             selected = i;
             break;
         }
         total += area;
   }
Run Code Online (Sandbox Code Playgroud)

然后在矩形内生成任意点:

  • x1 +(1 /(x2-x1))*rand(0,(x2-x1-1)),
  • y1 +(1 /(y2-y1))*rand(0,(y2-y1-1)).

但如果一些矩形可以重叠怎么办?

random algorithm math probability uniform-distribution

6
推荐指数
1
解决办法
981
查看次数