Questions tagged «shuffle»

改组是使集合中元素的顺序随机化的行为。

6
一次以相同顺序随机播放两个列表
我正在使用包含大量文档的nltk图书馆movie_reviews语料库。我的任务是在没有数据预处理的情况下获得这些评论的预测性能。但是有一个问题,在列表中documents,documents2我有相同的文档,因此我需要对它们进行混洗,以便在两个列表中保持相同的顺序。我无法分别对它们进行洗牌,因为每次我对列表进行洗牌时,都会得到其他结果。这就是为什么我需要用相同的顺序立即将其洗牌,因为最后需要比较它们(取决于顺序)。我正在使用python 2.7 示例(实际上是字符串标记化的字符串,但不是相对的): documents = [(['plot : two teen couples go to a church party , '], 'neg'), (['drink and then drive . '], 'pos'), (['they get into an accident . '], 'neg'), (['one of the guys dies'], 'neg')] documents2 = [(['plot two teen couples church party'], 'neg'), (['drink then …
88 python  list  sorting  shuffle 

7
为什么random.shuffle返回None?
为什么要用Pythonrandom.shuffle返回None? >>> x = ['foo','bar','black','sheep'] >>> from random import shuffle >>> print shuffle(x) None 我如何获得改组后的值而不是None?
88 python  list  random  shuffle 

2
如何随机化向量
我想用一个简单的单行命令随机重组向量中数字的顺序吗? 我的特定向量V从1到10的每个值都有150个条目: V <- rep(1:10, each=150)
80 r  vector  random  shuffle 

4
这种混洗算法有什么问题(如果有的话),我怎么知道?
就像背景一样,我知道Fisher-Yates完美的随机播放。它的O(n)复杂度和保证的均匀性是一个很好的改组,如果在允许就地更新数组的环境中使用它,我真是个傻瓜(所以在大多数情况下,如果不是全部,命令式编程环境)。 遗憾的是,函数式编程世界无法让您访问可变状态。 但是,由于Fisher-Yates的缘故,我没有太多关于如何设计改组算法的文献。在解决这个问题的几个地方都做了简短的说明,然后才说“实际上是Fisher-Yates,这是您需要知道的所有内容”。最后,我必须提出自己的解决方案。 我想出的解决方案是这样的,它可以随机排列任何数据列表: 如果列表为空,则返回空集。 如果列表中有单个项目,则返回该单个项目。 如果列表非空,请使用随机数生成器对列表进行分区,然后将算法递归应用于每个分区,以组合结果。 在Erlang代码中,它看起来像这样: shuffle([]) -> []; shuffle([L]) -> [L]; shuffle(L) -> {Left, Right} = lists:partition(fun(_) -> random:uniform() < 0.5 end, L), shuffle(Left) ++ shuffle(Right). (如果对您来说,这看起来像是一种疯狂的快速排序,那么基本上就是这样。) 因此,这就是我的问题:使得费舍尔-耶茨(Fisher-Yates)很难找到改组算法的情况使寻找工具来分析改组算法同样困难。在分析PRNG的均匀性,周期性等方面,我可以找到很多文献,但是关于如何分析混洗的信息却很少。(实际上,我发现的有关分析混洗的一些信息完全是错误的,很容易通过简单的技术来欺骗。) 所以我的问题是:我该如何分析我的改组算法(假设random:uniform()调用是由生成具有良好特征的适当随机数的任务决定的)?我可以使用哪些数学工具来判断,例如,在1..100范围内的整数范围内的100,000次混洗运行是否给了我很好的混洗结果?我已经进行了一些测试(例如,将随机播放中的增量与减量进行比较),但是我想知道更多一些内容。 并且,如果对这种随机播放算法本身有任何见解,也将不胜感激。

4
随机播放vs置换numpy
numpy.random.shuffle(x)和之间有什么区别numpy.random.permutation(x)? 我已经阅读了文档页面,但是当我只想随机地对数组元素进行随机排列时,我不明白两者之间是否有任何区别。 确切地说,假设我有一个数组x=[1,4,2,8]。 如果我想生成x的随机排列,那么shuffle(x)和之间有什么区别permutation(x)?

10
您从这种随机打乱中得到什么分布?
著名的Fisher-Yates随机播放算法可用于随机排列长度为N的数组A: For k = 1 to N Pick a random integer j from k to N Swap A[k] and A[j] 一遍又一遍地告诉我不要犯的一个常见错误是: For k = 1 to N Pick a random integer j from 1 to N Swap A[k] and A[j] 也就是说,您不是从k到N中选择一个随机整数,而是从1到N中选择了一个随机整数。 如果您犯了这个错误怎么办?我知道结果排列不是均匀分布的,但是我不知道对结果分布有什么保证。特别是,是否有人对元素的最终位置上的概率分布有表达式?
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.