问题标签 [shuffle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 洗牌 NSMutableArray 的最佳方法是什么?
如果你有一个NSMutableArray
,你如何随机打乱元素?
(我对此有自己的答案,发布在下面,但我是 Cocoa 的新手,我很想知道是否有更好的方法。)
更新:正如@Mukesh 所指出的,从 iOS 10+ 和 macOS 10.12+ 开始,有一种-[NSMutableArray shuffledArray]
方法可用于随机播放。有关详细信息,请参阅https://developer.apple.com/documentation/foundation/nsarray/1640855-shuffledarray?language=objc。(但请注意,这会创建一个新数组,而不是在原地打乱元素。)
algorithm - 天真的洗牌的现实问题
我正在写一些文章,旨在通过使用与扑克相关的主题来教授初级编程概念。目前,我正在研究洗牌的主题。
正如Jeff Atwood 在 CodingHorror.com 上指出的那样,一种简单的洗牌方法(遍历数组并将每张卡片与数组中其他地方的随机卡片交换)会导致排列分布不均匀。在实际应用中,我只会使用Knuth Fisher-Yates shuffle以获得更均匀的随机性。但是,我不想用对编码器不太友好的算法来解释编程概念。
这就引出了一个问题:如果黑帽知道你使用的是 52 张牌的天真洗牌,他们会有多大的优势?似乎它会无限小。
java - 使用 Collections API 进行随机播放
我变得非常沮丧,因为我似乎无法弄清楚为什么 Collections shuffle 不能正常工作。
可以说我正在尝试对randomizer
数组进行洗牌。
出于某种原因,无论我是否调用 shuffle 方法,元素都保持完全相同的排序。有任何想法吗?
algorithm - 随机播放列表(带有重复项)以避免相同的元素彼此相邻
我想知道是否有一种“最佳”方法来洗牌包含重复项的元素列表,以便尽可能避免 array[i] == array[i+1] 的情况。
我正在研究加权广告展示(我可以为任何给定的广告商调整每次旋转的展示次数),并希望避免同一广告商连续出现两次。
c# - 在 C# 中随机“排序”(随机播放)整数列表的最有效方法
我需要以最有效的方式随机“排序”整数列表(0-1999)。有任何想法吗?
目前,我正在做这样的事情:
algorithm - 使用 PRNG 而不是改组生成改组范围
在给定任意种子值的情况下,是否有任何已知算法可以在线性时间和恒定空间(当输出迭代产生时)中生成混洗范围 [0..n)?
假设 n 可能很大,例如数百万,因此不需要潜在地产生每个可能的排列,尤其是因为它不可行(种子值空间需要很大)。这也是需要恒定空间的原因。(所以,我特别不是在寻找数组改组算法,因为这要求范围存储在长度为 n 的数组中,因此会使用线性空间。)
我知道问题 162606,但它没有给出这个特定问题的答案 - 从排列索引到该问题中给出的排列的映射将需要巨大的种子值空间。
理想情况下,它会像一个周期和范围为 的LCG ,但选择和用于 LCGn
的艺术是微妙的。简单地满足 LCG 的限制并在整个周期内满足我的要求,但我想知道是否有更好的想法。a
c
a
c
java - 有没有办法将 Knuth shuffle 应用于 Stack 数据结构?
对于编程课,我正在为第一个家庭作业创建一个二十一点程序。教授给了我们一个示例 Card 类,其中包括将它们添加到卡片组的方法。对于她的套牌,她使用了一个 ArrayList,您可以使用 Collections.shuffle() 方法轻松地进行 Knuth Shuffle。
尽管(显然)该方法不适用于堆栈,但我认为堆栈结构最适合该程序,因为您可以将卡片弹出和推入和推出牌组。
shuffle - 改组有偏随机数
在思考这个问题并与参与者交谈时,出现了一个想法,即对一组有限的明显有偏差的随机数进行洗牌会使它们随机化,因为你不知道它们被选中的顺序。这是真的吗?如果是这样,有人可以指出一些资源吗?
编辑:我想我可能有点不清楚。假设一个坏的随机数生成器。取 n 个值。这些是有偏见的(rng 不好)。有没有办法通过改组使多次试验的 rng 输出在统计上与已知良好 rng 的输出相匹配?
python - 用python打乱一个数组,用python随机化数组项顺序
用 python 打乱数组的最简单方法是什么?
c# - C#:Swap 方法的良好/最佳实现
我读过这篇关于洗牌的文章,在许多洗牌和排序算法中,您需要交换列表或数组中的两个项目。但是一个好的高效的 Swap 方法是什么样的呢?
让我们说 aT[]
和 a List<T>
。您将如何最好地实现一种在这两个项目中交换两个项目的方法?