问题标签 [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.

0 投票
4 回答
505 浏览

c++ - 如何在没有随机性的情况下对列表进行洗牌,并保证部分元素最终会出现在一侧?

给定一个元素列表,是否存在洗牌算法来保证最终选定的一半部分位于一侧,而其余部分位于另一侧?

示例:{ 4, 3, 10, 7, 2, 9, 6, 8, 1, 5 }

鉴于上面的集合,我希望有一个混合算法,最终将标记的向左移动,即使算法本身不知道什么是“标记”和没有“标记”。

   { 4, 3, 10, 7, 2, 9, 6, 8, 1, 5 }
     X X X X X

可接受的结果是:
   { 4, 10, 9, 6, 1, 3, 7, 2, 8, 5 }
   { 1, 9, 10, 4, 6, 2, 8, 5, 7, 3 }
   { 1, 4, 9, 10, 6, 3, 7, 5, 8, 2 } 等

难点:算法不应该使用随机数来混合内容,它应该是一个迭代过程。所以费舍尔-耶茨出局了。

0 投票
5 回答
477 浏览

php - 如何进行受控的“洗牌”订单?

我在 sql 数据库中有一组问答游戏问题(实际上是 javascript 和 sqlite)。这些问题都有一个从 1 到 5 的难度级别,5 是最难的。这是数据的简化可视化...

现在我可以在 sql 或代码中对这些内容进行洗牌,因此它们的顺序是随机的,没有重复,但我也想控制难度字段的排序方式。

因此,例如,我可以有一组打乱的问题,其中难度级别的顺序看起来像这样......

1,1,5,2,3,3,2,2,2,4

这有几个“难点”,这不是我想要的。玩游戏的用户会得到几组同样困难的问题。这样的订单会更好...

1,2,3,2,5,4,1,2,3,2

我想确保问题被打乱,但没有困难结块。在几乎没有“团块”的情况下均匀分布困难。对 MySQL/javascript(或 PHP)的任何帮助都会很棒。

0 投票
16 回答
76292 浏览

java - 如何在不使用 Collections.shuffle(...) 的情况下随机播放字符串中的字符?

如何打乱字符串中的字符(例如,hello 可能是 ehlol 或 lleoh 或 ...)。我不想用这个Collections.shuffle(...)方法,有什么更简单的吗?

0 投票
1 回答
11197 浏览

c - Fisher-Yates shuffle 的这个 C 实现是否正确?

这是我想在洗牌程序中使用的 Fisher-Yates 的 C 实现。我这样做是否正确(n = 数组长度)?

注意:do-while 循环尝试纠正模偏差(参见此处)。它增加了过程的一些开销,如果您不关心低位偏差,可以将其消除。

0 投票
3 回答
1474 浏览

algorithm - 如何在不提前读取整个文件的情况下打乱文件中的行?

在不提前读取整个文件的情况下打乱文件中的行的好算法是什么?

我猜它看起来像这样:从头开始逐行读取文件,在每个点存储该行并决定是否要打印到目前为止存储的行之一(然后从存储中删除)或什么都不做并继续下一行。

有人可以验证/证明这一点和/或发布工作(perl、python 等)代码吗?

相关问题,但不考虑内存效率算法:

0 投票
3 回答
6435 浏览

ruby - Ruby - 以随机顺序返回一个数组

在Ruby中以随机顺序返回数组的最简单方法是什么?任何可以在 IRB 会话中使用的漂亮和简短的东西,比如

0 投票
4 回答
8282 浏览

c# - 使用密钥的可逆洗牌算法

我将如何在 C# 中编写一个可逆的随机播放算法,该算法使用一个密钥来随机播放并且可以反转到原始状态?

例如,我有一个字符串:“Hello world”,我怎样才能将它打乱,以便稍后我可以将打乱的字符串反转回“Hello world”。

0 投票
5 回答
1351 浏览

algorithm - 除了 Fisher-Yates 并找到“下一个排列”之外,还有哪些洗牌算法?

特别是在同一类型的一维项目集的域中,例如整数向量。

例如,假设您有一个大小为 32,768 的向量,其中包含从 0 到 32,767 的排序整数。

我所说的“下一个排列”的意思是在词汇排序系统中执行下一个排列。

维基百科列出了两个,我想知道是否还有更多(除了一些 bogo :P)

0 投票
2 回答
3416 浏览

objective-c - 在 Objective-C 中的 NSString 中洗牌

我已经编写了这个函数,它对 a 的内容进行了洗牌NSString,它似乎可以工作,但它时不时地崩溃。这可能是一种迂回的方式,但我将字符放入数组中,随机交换数组中的元素,然后将数组转回字符串。

我不确定我在做什么是不安全的,这会导致它崩溃。我认为这可能是我正在设置finalLettersString = result,但我也尝试过,但finalLettersString = [NSString stringWithString:result]它也崩溃了。我感到困惑的原因是因为它不会每次都崩溃。我只是一直按随机播放按钮,有时它会崩溃。有什么地方值得看吗?

0 投票
3 回答
32102 浏览

javascript - JavaScript - 在对象内随机播放对象(随机化)

我需要从 JSON 结果中实现随机化。

JSON 的格式是两个对象:

结果:

问题(对象)

主题(对象)

我想随机化问题对象和主题对象中对象的顺序。