生成不重复的随机数

2023-12-15

我想在 C 中创建一个函数。它将返回 N 范围内的随机整数,例如:- 兰特()%N; 但问题是我想追踪独特性。我不想让这些数字重复。但我也可以通过创建一个数组并在其中复制生成的整数来做到这一点。喜欢 :-array[count] = rand() % N;并每次检查生成的数字是否已经在其中。 (只需在数组[]内搜索即可);这是一种简单但正确的方法。这需要很多如果和for;为了这个工作。 这是我能想到的最好的办法。


问题是,我想为这个问题找到最好的/优化的解决方案。最有效的方法是什么?

让我们澄清一些事情:- 我想在 NSArray 的 UILabel 中设置一些文本,该文本始终是唯一的。我的 NSArray 正在从 Plist 获取数据,并且我的 Plist 有超过 1000 个条目。如果我想多次执行此操作,则会影响性能,因此我需要一些有效的方法来执行此操作。


听起来你想要的实际上是数字 1..N 的随机排列。因此,用连续整数 1..N 填充数组,然后对数组进行打乱。有众所周知的洗牌算法你可以查一下。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

生成不重复的随机数 的相关文章

  • 如何使用 Swift 使用 TouchID?

    Apple 为 iOS 8 的 TouchID 实现提供的文档采用 Objective C 语言 有 Swift 版本吗 Objective C IBAction touchIDAvailable UIButton touchIDAvail
  • 机器Epsilon精度差异

    我正在尝试计算 C 中双精度数和浮点数的机器 epsilon 值 作为学校作业的一部分 我在 Windows 7 64 位中使用 Cygwin 代码如下 include
  • 随着时间的推移,添加到 List 变得非常慢

    我正在解析一个大约有 1000 行的 html 表 我从一个字符串中添加 10 个字符串 td 每行到一个list td
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 用于 FTP 的文件系统观察器

    我怎样才能实现FileSystemWatcherFTP 位置 在 C 中 这个想法是 每当 FTP 位置添加任何内容时 我都希望将其复制到我的本地计算机 任何想法都会有所帮助 这是我之前问题的后续使用 NET 进行选择性 FTP 下载 ht
  • 在 Objective C 的类方法中引用类本身

    我希望我没有跳过 ObjC 手册中的这一部分 但是是否可以从类的一个类方法中引用该类 就像在 PHP 中一样 您将使用 this 来引用当前实例 而 self 引用实例的类 this 的 ObjC 等价物将是 self 那么 PHP 的 s
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • 结构体的内存大小不同?

    为什么第一种情况不是12 测试环境 最新版本的 gcc 和 clang 64 位 Linux struct desc int parts int nr sizeof desc Output 16 struct desc int parts
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • AVAssetExportSession 为零 iPhone 7 - Plus 模拟器

    AVAssetExportSession在 iPhone 6 及以下版本上运行良好 但在 iPhone 7 iPhone 7 Plus 模拟器上运行不佳 Xcode 8 0 这段代码return nil在exportSession中 当在i
  • ios水平居中约束问题?

    I am having hard time in learning constraints auto layout in iOS I have used any width any height I have a storyboard sc
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • 空指针与 int 等价

    Bjarne 在 C 编程语言 中写道 空指针与整数零不同 但 0 可以用作空指针的指针初始值设定项 这是否意味着 void voidPointer 0 int zero 0 int castPointer reinterpret cast
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 相当于Linux中的导入库

    在 Windows C 中 当您想要链接 DLL 时 您必须提供导入库 但是在 GNU 构建系统中 当您想要链接 so 文件 相当于 dll 时 您就不需要链接 为什么是这样 是否有等效的 Windows 导入库 注意 我不会谈论在 Win
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 如何确定 CultureInfo 实例是否支持拉丁字符

    是否可以确定是否CultureInfo http msdn microsoft com en us library system globalization cultureinfo aspx我正在使用的实例是否基于拉丁字符集 我相信你可以使

随机推荐

  • 如何从 datagridview 组合框中获取值?

    更改所选值后如何从 datagridview 组合框中获取值 您可以使用 var value DataGridView Rows 0 Cells 0 Value 注意 您需要提供正确的行号和单元格号 或者 如果它绑定到像 ListItem
  • 如何为 ipython 集群(ipcluster)设置 ssh 隧道

    我想在可 ssh 访问的服务器和其他一些机器上运行 ipython 集群 所有这些机器都可以通过 ssh 相互连接 网络不可信 我尝试使用我从文档中了解到的内容来设置 ssh 隧道 ipcontroller 和 ipengine 然而 我最
  • Express.js:是否可以像 res.render 一样将对象传递给重定向?

    EDIT 提出的解决方案在这个答案中是实现这一目标的正确方法 On a get节点中的请求我可以这样做 app get function req res res render index ejs message test 并发送一个对象以便
  • 这个指向成员的指针转换有什么问题?

    这段代码有什么问题 我想我可以因为这个答案而转换 向上转换 方法指针并将其与基类指针一起使用是否安全 struct B void f struct D B virtual D template
  • Spring MVC 中的内容协商

    我正在使用 Spring 3 编写一个 RESTful Web 应用程序 我的应用程序的一部分需要根据请求的媒体类型处理数据 RequestMapping public String process if requested media t
  • 如何隐藏Flex中的打印对话框?

    Flex 中是否可以隐藏打印对话框 我正在使用 FlexPrintJob 类 这是我的代码 var print FlexPrintJob new FlexPrintJob print printAsBitmap true if print
  • csrf_token 的问题

    我正在 django 教程中做 wiki 并且在教程中使用早期版本的 django 其中 csrf 令牌不是必需的 我已将 csrf token 添加到表单中 但我不确定在视图中要做什么 请帮忙 表格如下
  • 在 Oracle PL/SQL 中使用 ONLINE 将非分区表转换为分区表

    我了解到 我们无法将现有的非分区表转换为分区表 但以下来自 Oracle 的链接表明 在 ONLINE 关键字的帮助下我们可以做到这一点 https docs oracle com en database oracle oracle dat
  • sums 返回 String,仅适用于 postgresql

    我正在将数据库从 mysql 迁移到 postgres 按照 postgres 文档 迁移本身没问题 现在 我正在修复我们特定的 mysql 查询 在某些时候 我们现在有这样的情况 select SUM CASE WHEN income T
  • android sqlite如何按时间排序[重复]

    这个问题在这里已经有答案了 可能的重复 对于 Android 应用程序 如何按降序排列 SQLITE 数据库 我有下表 我想在其中选择表的内容 但按 C TAG SCAN TIME 字段 DESC 排序 public static fina
  • 在编译时确定 Nat 是否能被 5 整除的函数

    Using Cactus有帮助answer 我尝试编写一个函数 给定一个Nat 将返回Nat如果它能被整除5 onlyModBy5Helper n Nat gt k Nat k mod 5 0 gt Nat onlyModBy5Helper
  • 如何分享imageview的图片?

    我有 ImageView 我想分享它的图像 以下是我的代码 btshare setOnClickListener new OnClickListener Override public void onClick View v View co
  • 如何在数组列表中添加齐射图像请求?

    我有下面的代码 2 件事 Volley请求设置图像 以及array list adapter显示静态图像 我需要帮助在数组列表中添加齐射请求 我想要在数组列表中显示截击图像 该怎么做 你能帮我吗 请注意 我已经有一个 phpscript 可
  • 动态选择 Spark 数据框中的列

    我有如下数据框中的数据 如您所见 有 2019 和 2019 p 2020 和 2020 p 2021 和 2021 p 列 我想动态选择最后的列 如果 2019 为空 则取 2019 p 的值 如果 2020 的值为空 则取 2020 p
  • 将逗号分隔的字符串添加到 ArrayList 中,反之亦然

    如何将逗号分隔的字符串添加到 ArrayList 中 我的字符串 returnedItems 可以容纳 1 或 20 个项目 我想将它们添加到我的 ArrayList selItemArrayList 中 填充 ArrayList 后 我
  • Google Docs(电子表格):引用其他表格的条件格式

    Google 文档 电子表格 告诉我这个 自定义 公式是错误的 在 Excel 中却可以 AND MATCH CONCATENATE A2 B2 Allievi G 1 G 1204 0 L2 Facilitatore di classe
  • 在 Swift 中填充多维数组

    我是 Swift 的新手 我遇到了 Swift 语言的问题 我应该创建一个函数 它创建一个二维矩阵 NxN 并找到对角线元素的总和 我在用随机值填充数组时遇到一些问题 这是我的代码 import Foundation func diagon
  • 如何将 puppeteer“挂钩”到正在运行的 Chrome 实例/选项卡中

    是否可以以某种方式将 puppeteer 附加到正在运行的 Chrome 实例 手动启动的浏览器 然后在选项卡内接管控制权 我假设它最终与使用启动 Chrome 浏览器有关 no sandbox标记但不知道如何从那里继续 谢谢你的帮助 您可
  • parseInt("010", 10);与 parseInt(010, 10); 比较

    我对某个特定结果感到困惑parseInt 我以为我理解了它的大部分怪癖 但这一点还不清楚 parseInt 010 10 10 parseInt 010 10 8 but expecting 10 在第二个示例中 我指定了正确的基数 到底是
  • 生成不重复的随机数

    我想在 C 中创建一个函数 它将返回 N 范围内的随机整数 例如 兰特 N 但问题是我想追踪独特性 我不想让这些数字重复 但我也可以通过创建一个数组并在其中复制生成的整数来做到这一点 喜欢 array count rand N 并每次检查生