问题标签 [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 投票
3 回答
710 浏览

如何以更易读的方式洗牌我的数组或字符串列表?

想象一下,您想要一个非常易读、易于编辑的项目列表,仅用逗号分隔,然后从该列表中回显 3 个随机项目。数组或字符串无关紧要。现在,我得到了以下工作(感谢 webbiedave!)

输出:

这里唯一未解决的问题是该列表不像我希望的那样可读:就我个人而言,我非常喜欢输入列表不带引号,例如Mango,而不是'Mango',意思最好是这样:

(Mango, Banana, Cucumber, Pear, Peach, Suthern Melon, Coconut)

这很容易吗?非常感谢您的意见。

0 投票
6 回答
4416 浏览

以相同的方式随机播放 2 个 php 数组

我有这个例如:

我怎样才能将它们都洗牌以获得类似的东西:

或任何其他随机顺序,但两者具有相同的“随机因子”?

例如,我想要那个$array['one'][0]并且$array['two'][0]被洗牌以获得$array['one'][x]$array['two'][x]x是一个随机键,但两个数组上的相同)。

0 投票
2 回答
4833 浏览

在 android 中处理对象

我是一个没有Java经验的flash开发人员,刚开始学习android开发。我正在尝试制作一个简单的儿童抽认卡应用程序,其中包含大量动物的图像和它们发出的大量声音。

目前我在画廊视图中有图像,将它们存储在一个数组中。我也有一系列的声音。所以每个图像和对应的声音在数组中的位置相同,因此很容易为正确的图像播放正确的声音。

现在我想洗牌,以便每次启动应用程序时它们以不同的顺序出现。我设法将数组随机排列,但将图像和声音保持在每个数组中的相同位置,但我能感觉到这变得混乱,我确信这不是解决这个问题的最佳方法。

如果这是一部 Flash 电影,我会使用对象来链接图像和声音,并将对象粘贴在一个数组中。任何人都可以帮助我提供一些可以为 android 实现相同目标的代码吗?请记住,我是一个完整的 Java 初学者,并且已经通过与 AS3 相同的教程和基本概念走到了这一步。

0 投票
2 回答
511 浏览

随机打乱一个数字序列

我需要帮助在 Obj-C 中随机排列数字序列,例如 1-4,它将是 3、1、2、4 或 1、4、3、2。我知道它涉及到这个功能arc4random()。有什么建议/提示吗?

0 投票
1 回答
1062 浏览

Objective-C 脚本桥和 iTunes

嗨,我需要一点帮助,我想在我的 Mac 应用程序上包含 2 个按钮,这将触发 2 个操作,1 个将触发 iTunes 随机播放功能并将其设置为“是”,但如果它已全部准备好设置为“是”,那么它将设置为“否” . 另一个将获得 iTunes 当前播放的重复模式。

这是我从 iTunes.h 文件中找到的,也是对 iTunes.h 文件的描述http://merbist.com/2010/01/17/controlling-itunes-with-macruby/

谁能帮助我,谢谢萨米。

0 投票
7 回答
5593 浏览

如何在 Java 中测试一副纸牌是否洗得足够多

我必须测试一下,看看这个方法是否洗过一副牌。这里是实际洗牌部分的代码。

测试它是否被洗过的问题是我只能交换两张牌,它会被认为是洗过的。这是我迄今为止对随机洗牌的测试。

所以,我的问题是,我如何测试某些东西是否已经足够洗牌?

0 投票
1 回答
944 浏览

jQuery shuffle 插件破坏了 jQuery-UI 排序

我发现一个 jQuery shuffle 插件有问题。它打破了我嵌套的可排序列表。在底部,我放置了一个演示问题的链接,如下所述。

html 很简单,有一个包含四个列表项的有序列表。这些列表项中的每一个都包含一个带有两个列表项的无序列表。底部有一个按钮可以打乱有序列表。

有序列表是可排序的,无序列表也是可排序和连接的(例如,我可以将“项目 A”移动到“项目 G”下方)。到现在为止还挺好!

随机播放按钮(几乎)做了我期望它做的事情,它随机播放有序列表(而不是无序!)。但在这样做的同时,它也破坏了无序的可排序列表。在我洗牌之前,我不再能够移动元素。

难道我做错了什么?插件有bug吗?

插件链接:http: //yelotofu.com/labs/jquery/snippets/shuffle/jquery.shuffle.js

链接到问题的演示:http: //jsbin.com/umeju6

0 投票
8 回答
16165 浏览

如何在 Ruby 中打乱数组/散列?

出于学习目的,这叫什么?创建的对象是数组还是散列?

这就是我填充它的方式:

这是我的卡片类:

我想打乱这个数组/哈希中的元素(这叫什么?:S)

有什么建议么?

0 投票
4 回答
1456 浏览

是否可以在保留行和列频率的同时对 2D 矩阵进行洗牌?

假设我有一个如下所示的二维数组:

每个数组元素都取自一个小的有限集(在我的例子中是 DNA 核苷酸 -- {A, C, G, T})。我想以某种方式随机打乱这个数组,同时保留行列核苷酸频率。这可能吗?能否高效完成?

[编辑]:我的意思是我想生成一个新矩阵,其中每一行的As、Cs、Gs 和Ts 的数量与原始矩阵的相应行相同,并且每列的As 数量相同,Cs, Gs 和Ts 作为原始矩阵的对应列。 置换原始矩阵的行或列通常不会实现这一点。 (例如,对于上面的示例,顶行有 2个,G每个1个ACTAGT

通过一次改组一列来保留列频率很简单,对于行也是如此。但这样做通常会改变另一种频率。

到目前为止我的想法: 如果可以选择 2 行和 2 列,以便这个矩形角的 4 个元素具有模式

对于一些不同的元素XY,然后将这 4 个元素替换为

将保持行和列频率。在顶部的示例中,可以对(至少)第 1 行和第 2 行以及第 2 和第 5 列(其角为 2x2 矩阵AG;GA)以及第 1 行和第 3 行以及第 1 和第 4 列(其角为GT;TG)执行此操作. 显然,这可以重复多次以产生某种程度的随机化。

概括一下,由行子集和列子集引起的任何“子矩形”,其中所有行的频率相同,所有列的频率相同,都可以将其行和列置换以产生一个有效的完整矩形。(其中,只有那些至少改变了 1 个元素的子矩形才是真正有趣的。)大问题:

  1. 是否所有有效的完整矩阵都可以通过一系列这样的“子矩形重排”到达? 我怀疑答案是肯定的。
  2. 是否所有有效的子矩形重排都可以分解为一系列 2x2 交换? [编辑]mhum 的反例表明答案是否定的。不幸的是,因为这似乎使得想出一个有效的算法变得更加困难,但知道这一点很重要。
  3. 是否可以有效地计算部分或全部有效重排?

这个问题解决了一个特殊情况,其中可能元素的集合是{0, 1}。人们提出的解决方案与我自己提出的解决方案相似,并且可能可用,但并不理想,因为它们需要任意数量的回溯才能正常工作。我也担心只考虑 2x2 交换。

最后,理想情况下,我希望有一个解决方案可以证明可以从具有与原始相同行频率和列频率的所有矩阵集中随机均匀地选择一个矩阵。我知道,我要求很多:)

0 投票
10 回答
6860 浏览

你从这个破碎的随机洗牌中得到什么分布?

著名的 Fisher-Yates shuffle 算法可用于随机排列长度为 N 的数组 A:

我一再被告知不要犯的一个常见错误是:

也就是说,不是从 k 到 N 中选择一个随机整数,而是从 1 到 N 中选择一个随机整数。

如果你犯了这个错误会发生什么?我知道得到的排列不是均匀分布的,但我不知道对得到的分布有什么保证。特别是,有人对元素最终位置的概率分布有一个表达式吗?