问题标签 [non-repetitive]

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 投票
7 回答
1153 浏览

algorithm - 范围内的非重复随机搜索算法

我正在寻找一种有效的算法,它可以在一定范围内产生随机值,而不会重复。

在伪代码中:(在 Rand 类中)

用法:

从 r.getNumber() 返回的数字应始终与先前返回的数字不同。
当然,如果to - from + 1返回了数字,算法应该重新开始(或者出错 - 无论如何都不重要)。

请注意,范围可能非常大,因此随机排列的数组(包含初始[from, to]数字)可能会溢出内存。

0 投票
6 回答
115177 浏览

random - numpy中的非重复随机数

如何在 numpy 中生成非重复随机数?

0 投票
4 回答
106 浏览

php - 消除随机矩阵中的重复

我正在编写一个程序,该程序涉及将一个数字放入 7x7 网格的每个单元格中。有56个数字,随机选择,不能重复。

最终结果应该是一个 7x7 网格,其中每个单元格包含一个从 1 到 56 的整数,没有两个单元格包含相同的数字。这样做最有效的方法是什么?

额外的话:我尝试创建一个 for x{for y{}} ,它将逐个单元格地遍历网格并添加一个随机数 1-56。然后它会检查一个 56 槽的数组以查看该号码是否已被使用,并相应地重新滚动或接受该号码,然后标记该数组以将该号码标记为正在使用。由于某种原因,我无法让它工作,这似乎是一个糟糕的解决方案。我放弃了它,而是每次运行 x{for y{}} 一秒钟,并在批准或拒绝之前逐个单元格地检查整个网格中的滚动数字。这也不太奏效,而且看起来很笨拙,所以我也废弃了它。

0 投票
1 回答
2047 浏览

java - Java中高效的非重复密码生成器

我已经多次访问这个网站并找到了我的问题的答案,但现在是我发布自己的问题的时候了!因此,我的软件中特定类的目标是生成固定长度的随机密码,由“低”ASCII 字符组成。主要问题是我不想两次生成相同的密码,但始终保证唯一性。最初,我使用HashMap来对迄今为止生成的每个密码进行哈希处理,并在每次创建新密码时用作检查,然后再返回。但是,Java HashMap 对象的大小有限,最终 Map 会变得过于饱和而无法维持可接受的检索时间。以下是我对这个问题的最新破解:

编辑:非常感谢 Set 建议。它现在也让我的代码更干净了!

我可能决定只使用愚蠢的生成器方法来填充BlockingQueue并将其多线程化至死......

进一步说明:这并不意味着生成安全密码。它必须简单地保证它最终会生成所有可能的密码,并且对于给定的长度和字符集只生成一次。

笔记:

我听取了每个人的见解并得出结论,顺序生成可能的密码并将它们存储到磁盘可能是我最好的选择。要么,要么简单地允许重复密码,并通过多个生成器线程来补充效率低下。

0 投票
4 回答
148 浏览

javascript - 重复的 JavaScript (jQuery) 代码

这是我正在做的简单的事情。我有一些 div,每个名为“.item-1”、“.item-2”等。当用户将鼠标悬停在“.item-1”上时,“#city-info-1”div 向上滑动,而它当用户悬停时向下滑动。我足够了解这样做,并且足够了解我的编码方式并不是最好的方式。只是好奇其他人会如何做到这一点,所以我不必每次都重复几乎相同的代码。感谢任何建议:)

0 投票
4 回答
21811 浏览

java - 在Java中生成范围内的非重复随机数

我想生成 1 到 4、4 范围内的随机数,包括。
这是我的代码:

但是,我在循环中运行上面的代码并且不想重复随机数。现在发生的事情通常是我得到的:
1,1,1,2,3,1,4,2,2,1,4,2,4,4,2,1,4,3,3,1,4,2,4,1作为我的输出。

在这里,虽然数字在范围(1-4)内是随机的,但在前 3 次迭代中经常像数字“1”一样重复。

我正在寻找的是一种在循环中获取非重复随机数的方法。我知道的一种简单方法是在当前迭代和比较之前保留最后一个随机数,但我确信必须有更好的解决方案。
提前致谢。

0 投票
2 回答
104 浏览

javascript - 有没有更短的方法来使用 Ajax 进行函数调用?

我将整个函数粘贴在这里,顺便说一下,我在这个脚本中使用了 mustache 模板库,但这在问题中不是必需的:

我无法缩短它并删除重复的代码,因为我无法在 Ajax 成功中分配局部变量,因为它是异步的。我在互联网上徘徊了大约 15 个小时。但仍然没有运气。

我怎样才能删除重复的代码并使这个东西更短?

0 投票
3 回答
1371 浏览

xcode - 使用arc4random的Xcode中随机数的非重复算法中的数组为空

我在 Xcode 中使用 arc4random 生成随机值时遇到问题。我想从随机生成中排除那些已经被拾取的数字。这是我写的算法

但它不起作用。我想可能是因为 randomvalue 和数组中的第 j 个对象不可比较(第一个整数和第二个字符串?)。任何人都可以帮助我吗?

0 投票
3 回答
309 浏览

c++ - 使一堆 C++ 类具有可比性,同时避免代码重复

我需要创建一堆类,以便可以相互比较特定类型的实例。

我想写一个 compare 方法,每个类都是唯一的,然后将以下代码添加到每个类定义中,将 T 替换为我所在的类的名称:

不过,这有点重复。有没有更通用的方法呢?我想我可以为此编写一个宏,在 T 上对其进行参数化,但是宏现在不是很 cplusplusy,是吗?我还考虑了继承和多态性,从我所读到的(我还没有使用虚拟类;我是 C++ 新手),我似乎会引入不必要的运行时开销,因为我m 不需要通过基类指针进行统一访问。除了宏或复制粘贴之外,还有更好的方法来完成它吗?

0 投票
3 回答
783 浏览

random - 非重复随机数

我需要生成大约 9-1 亿个非重复随机数,范围从零到生成的数字量,并且我需要非常快速地生成它们。对类似问题的几个答案提出了简单地对数组进行洗牌以获得随机数,而其他人则提出了使用布隆过滤器。问题是,哪个效率更高,如果是布隆过滤器,我该如何使用它?