生成不重复的随机数

2023-12-15

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


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

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


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

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

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

  • Caliburn.Micro - ShowDialog() 如何关闭对话框?

    EDIT 新信息 刚刚设法让记录器工作 老实说 我不知道 cm 有一个 并且在尝试使用时收到此消息TryClose TryClose requires a parent IConductor or a view with a Close m
  • ASP.NET Web 应用程序中的身份验证遇到问题

    我正在尝试对从登录页面登录我的 Web 应用程序的用户进行身份验证 我正在使用本教程 http support microsoft com kb 301240作为指南 它几乎准确地解释了我希望做什么 但是当我输入用户名和密码时 验证不起作用
  • 如何从 Qt 应用程序通过 ODBC 连接到 MySQL 数据库?

    我有一个新安装的 MySQL 服务器 它监听 localhost 3306 从 Qt 应用程序连接到它的正确方法是什么 原来我需要将MySQL添加到ODBC数据源 我在遵循这个视频教程后做到了这一点 https youtu be K3GZi
  • 嵌入资源文件的路径

    我的资源文件中有一个图标 我想引用它 这是需要图标文件路径的代码 IWshRuntimeLibrary IWshShortcut MyShortcut MyShortcut IWshRuntimeLibrary IWshShortcut W
  • 如何在C中同时运行两个子进程?

    所以我开始学习并发编程 但由于某种原因我什至无法掌握基础知识 我有一个名为 fork c 的文件 其中包含一个 main 方法 在此方法中 我将 main 分叉两次 分别进入子进程 1 和 2 在孩子 1 中 我打印了字符 A 50 次 在
  • 将 dataGridView 中选定的行作为对象检索

    我有一堂这样的课 public partial class AdressBokPerson public long Session get set public string F rnamn get set public string Ef
  • 无法加载程序集问题

    我收到以下错误 无法加载程序集 错误详细信息 System BadImageFormatException 无法加载文件或程序集 文件 或其依赖项之一 该程序集是由比当前加载的运行时更新的运行时构建的 无法加载 该程序集是使用 Net Fr
  • C# 枚举到字符串自动转换?

    是否可以让编译器自动将我的 Enum 值转换为字符串 这样我就可以避免每次都显式调用 ToString 方法 这是我想做的一个例子 enum Rank A B C Rank myRank Rank A string myString Ran
  • 如何将STL容器数据转储到gdb中?

    我无法在 gdb 中转储 STL 无序映射容器值 变量类型是 std unordered map var 我的 gdb 版本 7 7 1 GDB配置 configure host x86 64 linux gnu target x86 64
  • 处理“未找到细胞”。 Excel 中的错误

    我正在使用 Excel VSTO 应用程序并使用以下代码在工作表中查找错误单元格 Excel Range rngTemp Excel Range rngErrorRange Excel Worksheet Sheet1 Excel Work
  • 在 C# 中使用命名空间别名有什么好处? [复制]

    这个问题在这里已经有答案了 使用命名空间别名有什么好处 仅仅是为了简化编码吗 仅当与类发生冲突时我才使用名称空间别名 对我来说 这根本没有简化 我的意见是 如果没有必要 就不要使用
  • 传递数组时在 C 中的函数参数中强制指定数组大小

    Context 在 C 中 我有一个以数组作为参数的函数 该参数用作该函数的输出 输出的大小始终相同 我会 让阅读代码的人清楚所需的大小 不过它已经在函数注释中了 理想情况下 编译会输出警告或错误 这样我就可以在编译时而不是运行时防止出现问
  • 如何同步nosql db(ravendb)中的更改

    我已经开始在 RavenDB 的示例上学习 NoSQL 我从一个最简单的模型开始 假设我们有由用户创建的主题 public class Topic public string Id get protected set public stri
  • 选择合适的IDE

    您会推荐使用以下哪种 IDE 语言来在 Windows 下开发涉及识别手势并与操作系统交互的项目 我将使用 OpenCV 库来执行图像处理任务 之后 我将使用 win32 API 或 NET 框架与操作系统交互 具体取决于您建议的工具 性能
  • 如何将System.Windows dll添加到Visual Studio 2010 Express?

    我正在开发一个小型应用程序C and VS2010 as IDE with NET框架4 我想用CaptureSource类以便从笔记本电脑的网络摄像头捕获视频 为此我需要添加一个命名空间System Windows DependencyO
  • 如何从 Access 数据库中读取“是/否”值作为布尔值?

    帮我找回YES NO来自 MS Access 的布尔格式数据类型 我尝试解析它 但它总是返回 false 更新 实际上不是问题抱歉 它确实接受 YES NO 作为布尔值 OleDbconnection dbConnect new OleDb
  • “1个未解决的外部”C++

    我已经检查了所有文件之间的连接以及类和函数定义 但每次我尝试运行我的程序时 它都会阻止我并告诉我它有 1 个未解析的外部 该程序应该打开多个文件 一个 学生 文件和一个 成绩 文件 从中读取数据 然后使用 查询文件 来查找数据 找到查询中要
  • Xcode 7 调试器不会中断内联标头函数

    过去五年我一直在各种 C 项目中使用 Xcode 没有出现这个问题 今天 我打开了一个较旧的项目 大约 2 年前 并尝试通过在该函数中放置一个活动断点来调试头文件中的内联函数 由于某种原因 调试器不会中断此代码 但是 如果我在调用该函数的
  • 为什么在构造函数中设置字段是(或不是)线程安全的?

    假设您有一个像这样的简单类 class MyClass private readonly int a private int b public MyClass int a int b this a a this b b public int
  • 从脚本启用/禁用 GameObject 组件 [Unity3D]

    我需要获取一个脚本中设置的布尔值 放入名为 bouclier 的变量 以启用或禁用游戏对象 该变量位于游戏对象 Player 中 此处右下角 我需要启用或禁用这个游戏对象 Bouclier01 为此 我将脚本附加到游戏对象 Bouclier

随机推荐

  • 如何从 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 并每次检查生