相关疑难解决方法(0)

洗牌清单,但只是轻微一点

在Python中,我希望以一种方式对列表进行洗牌,使得每个元素最终不会超过N它开始的元素,其中N是一个常量.另外,我希望这是公平的.也就是说,满足此约束的每个排列应该是同等可能的(在随机数生成器的实际限制内).

例如,如果N是3,输入是[1, 2, 3, 4, 5, 6],那么结果[2, 1, 3, 6, 4, 5]将是有效的,但[6, 4, 1, 3, 5, 2]不会,因为6和2离它们的起始位置太远.

有没有一种简单的方法在Python中执行此操作?如果没有,是否有一些现有算法可以做到这一点?伪代码很好,如果需要我可以在Python中实现它.

运行时并不是非常重要,因为我每隔几分钟就会在~100k元素上运行一次这样的shuffle,所以如果有必要,我可以等待几秒钟让它运行.

python random algorithm shuffle list

6
推荐指数
0
解决办法
78
查看次数

random.shuffle随机性

我正在尝试为家庭作业编写遗传算法来解决旅行商问题.

我正在尝试的一个突变功能是random.shuffle在巡演中使用.

当我阅读文档时random.shuffle,我看到:

shuffle(self, x, random=None, int=<type 'int'>) method of random.Random instance
x, random=random.random -> shuffle list x in place; return None.

Optional arg random is a 0-argument function returning a random
float in [0.0, 1.0); by default, the standard random.random.
Run Code Online (Sandbox Code Playgroud)

有人可以解释一下这个函数中"random"参数的功能吗?我已经阅读了这个问题,但它没有回答我的问题.

我特别喜欢使用这个函数,如果我可以以某种方式控制随机播放的随机性(如果这有任何意义)

python random shuffle optional-parameters

5
推荐指数
1
解决办法
1996
查看次数

标签 统计

python ×2

random ×2

shuffle ×2

algorithm ×1

list ×1

optional-parameters ×1