javascript - 用随机值填充数组

标签 javascript arrays processing

我有两个一维数组,我想在处理中用 10 个唯一的随机 x,y 值填充它们。

例如:

x  y 
-  -
3, 9
2, 4
6, 2
7, 5

我的数组是:

表 1 的 X 值和

Table2 用于 Y 值。

我的问题是,如果数字 3,9 已经存在,我不希望 9,3 存储在数组中。

我可以识别 x,y 值(或 y,x)何时已存在,但一旦替换它,我无法检查生成的随机数是否存在于以前的索引中。

这是我到目前为止所尝试过的。但是,如果已经存在 3 个值,则数组 Table1 和 Table2 将仅存储 7 个值,而不是 10 个。

for (int i=0; i<10; i++) {       
   x=(int)random(6);
   y=(int)random(6);
 if  ((Table1[i] != x && Table2[i] != y) || (Table1[i] != y && Table2[i] != x))
   {
    Table1[i] = x; 
    Table2[i] = y;
   }   

有什么想法可以控制它吗?

最佳答案

我只能想到两种实现它的方法,但没有一种是理想的。

  • 检查您生成的数字是否已存在,如果存在,则生成另一个数字,直到获得唯一的组合。由于可能性很小,它可能会很昂贵,因为它是随机的,如果你非常不幸,你甚至可能会陷入无限循环......
  • 创建一个包含所有可能组合的数组。然后,您将生成此数组的随机索引([0;array.length[)中的整数,而不是生成随机数。之后,您必须从数组中删除所选组合(这样它将不可用于下一个循环),以及它的逆组合(如果您选择了 (9;3),则必须删除 ( 9;3) 和 (3;9))。

关于javascript - 用随机值填充数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29256689/

相关文章:

arrays - 在 Ruby 中,如何在给定要分解字符串的索引数组的情况下分解字符串?

processing - P5.js - 有没有办法切出图像区域?

java - 如何计算处理中两个给定点之间的点?

javascript - 在 Ember Addon 中导入配置文件时出错

javascript - 作业队列和 JavaScript 运行时

javascript - Google 如何在搜索结果点击后设置 HTTP Referrer

java - 如何修复此代码以使其正常工作

javascript - React 组件必须在层次结构中吗?

c - 如何找到 sizeof 数组?

ios - 对象未添加到数组中 - swift iOS