首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >随机将数组中的元素2乘以2

随机将数组中的元素2乘以2
EN

Stack Overflow用户
提问于 2013-02-14 20:01:31
回答 2查看 88关注 0票数 0

我的问题更多的是关于高山而不是编程语言,所以请随意使用任何语言来解释我。

我有一个数组,我想以一种随机的方式对它进行混洗,不管怎样,混洗必须同时涉及2个元素。所以,如果我有:

代码语言:javascript
运行
复制
1 2 3 4 5 6 7 8 9 10

1-2,3-4,5-6等对必须混洗在一起,例如,导致以下结果

代码语言:javascript
运行
复制
3 4 7 8 9 10 1 2 5 6
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-02-14 20:08:31

它与普通的随机数组相同,除了您将“随机数组”视为实际数组大小的一半。这意味着1,2,3,4,5,6实际上是一个数组1 2, 3 4, 5 6

下面是一些使用fisher yates的伪代码

代码语言:javascript
运行
复制
To shuffle an array a of n elements (indices 0..n-1) in pairs of 2:
  for i from (n − 1) / 2 downto 1 do
       j ← random integer with 0 ≤ j ≤ i
       exchange a[j * 2] and a[i * 2]
       exchange a[j * 2 + 1] and a[i * 2 + 1]
票数 1
EN

Stack Overflow用户

发布于 2013-02-14 20:09:14

使用对的索引创建一个数组,即使用一个比输入数组小两倍的数组,在其上使用std::random_shuffle(在C++中),然后根据您的助手数组更改原始数组。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14874408

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档