如何创建不重复的随机数?

2024-04-09

我正在尝试为老年之家创建一款宾果游戏。我能够使用用于扫描数组的随机数生成器来制作一个,但问题是需要很长时间(2 分钟)来搜索数组并确保没有重复的双精度数。我做了一些研究,发现 c 中称为伪随机的东西在创建时不会重复数字。但代码看起来非常复杂,所以我不愿意接受我不完全理解的东西。这引起了我的问题,是否有一种简单的方法来创建非重复随机数生成器,或者有一个可以解释随机数生成器的好解释?


很久以前,我用 C 语言编写了这个非常简单的程序,它生成 0 到 20 之间的 10 个随机数,不重复任何数字。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#define MAX 10      //Number to be generated.
#define rangeMAX 20 //Upper limit of range.
#define rangeMIN 0  //Lower limit of range.

int main()
{
  int get, c, i, arr[MAX], chk, x;
  c = i = 0;
  srand(time(0)); // this will ensure that every time, program will generate different set of numbers. If you remove this, same set of numbers will generated every time you run the program.
  while(c < MAX)
  {
    get = ((rand() % (rangeMAX-rangeMIN+1)) + rangeMIN); // generate random number.
    //After generating that number check if it is already in array.
    for(i=0; i<=c; i++)
    {
        if(arr[i] == get)
        {
            chk = 0;
            break;
        }
        else if(arr[i] != get)
        {
            chk = 1;
        }
    }
    if(chk==1)
    {
        arr[c]=get;
        printf("%d\n",arr[c]);
        c++;
    }
  }
  return 0;
}

希望这会有所帮助。

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

如何创建不重复的随机数? 的相关文章

  • 是否可以强制 XMLWriter 将元素写入单引号中?

    这是我的代码 var ptFirstName tboxFirstName Text writer WriteAttributeString first ptFirstName 请注意 即使我使用 ptFirstName 也会以双引号结束 p
  • pthread_cond_timedwait() 和 pthread_cond_broadcast() 解释

    因此 我在堆栈溢出和其他资源上进行了大量搜索 但我无法理解有关上述函数的一些内容 具体来说 1 当pthread cond timedwait 因为定时器值用完而返回时 它如何自动重新获取互斥锁 互斥锁可能被锁定在其他地方 例如 在生产者
  • 如何避免情绪低落?

    我有一个实现状态模式每个状态处理从事件队列获取的事件 根据State因此类有一个纯虚方法void handleEvent const Event 事件继承基础Event类 但每个事件都包含其可以是不同类型的数据 例如 int string
  • 实时服务器上的 woff 字体 MIME 类型错误

    我有一个 asp net MVC 4 网站 我在其中使用 woff 字体 在 VS IIS 上运行时一切正常 然而 当我将 pate 上传到 1and1 托管 实时服务器 时 我得到以下信息 网络错误 404 未找到 http www co
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • 为什么#pragma optimize("", off)

    我正在审查一个 C MFC 项目 在某些文件的开头有这样一行 pragma optimize off 我知道这会关闭所有以下功能的优化 但这样做的动机通常是什么 我专门使用它来在一组特定代码中获得更好的调试信息 并在优化的情况下编译应用程序
  • 指针问题(仅在发布版本中)

    不确定如何描述这一点 但我在这里 由于某种原因 当尝试创建我的游戏的发布版本进行测试时 它的敌人创建方面不起作用 Enemies e level1 3 e level1 0 Enemies sdlLib 500 2 3 128 250 32
  • 在 Visual Studio 2008 上设置预调试事件

    我想在 Visual Studio 中开始调试程序之前运行一个任务 我每次调试程序时都需要运行此任务 因此构建后事件还不够好 我查看了设置的 调试 选项卡 但没有这样的选项 有什么办法可以做到这一点吗 你唯一可以尝试的 IMO 就是尝试Co
  • C - 找到极限之间的所有友好数字

    首先是定义 一对友好的数字由两个不同的整数组成 其中 第一个整数的除数之和等于第二个整数 并且 第二个整数的除数之和等于第一个整数 完美数是等于其自身约数之和的数 我想做的是制作一个程序 询问用户一个下限和一个上限 然后向他 她提供这两个限
  • 指针减法混乱

    当我们从另一个指针中减去一个指针时 差值不等于它们相距多少字节 而是等于它们相距多少个整数 如果指向整数 为什么这样 这个想法是你指向内存块 06 07 08 09 10 11 mem 18 24 17 53 7 14 data 如果你有i
  • 如何将图像路径保存到Live Tile的WP8本地文件夹

    我正在更新我的 Windows Phone 应用程序以使用新的 WP8 文件存储 API 本地文件夹 而不是 WP7 API 隔离存储文件 旧的工作方法 这是我如何成功地将图像保存到 共享 ShellContent文件夹使用隔离存储文件方法
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • Qt表格小部件,删除行的按钮

    我有一个 QTableWidget 对于所有行 我将一列的 setCellWidget 设置为按钮 我想将此按钮连接到删除该行的函数 我尝试了这段代码 它不起作用 因为如果我只是单击按钮 我不会将当前行设置为按钮的行 ui gt table
  • 如何让Gtk+窗口背景透明?

    我想让 Gtk 窗口的背景透明 以便只有窗口中的小部件可见 我找到了一些教程 http mikehearn wordpress com 2006 03 26 gtk windows with alpha channels https web
  • 将文本叠加在图像背景上并转换为 PDF

    使用 NET 我想以编程方式创建一个 PDF 它仅包含一个背景图像 其上有两个具有不同字体和位置的标签 我已阅读过有关现有 PDF 库的信息 但不知道 如果适用 哪一个对于如此简单的任务来说最简单 有人愿意指导我吗 P D 我不想使用生成的
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • WCF:将随机数添加到 UsernameToken

    我正在尝试连接到用 Java 编写的 Web 服务 但有些东西我无法弄清楚 使用 WCF 和 customBinding 几乎一切似乎都很好 除了 SOAP 消息的一部分 因为它缺少 Nonce 和 Created 部分节点 显然我错过了一
  • mysql-connector-c++ - “get_driver_instance”不是“sql::mysql”的成员

    我是 C 的初学者 我认为学习的唯一方法就是接触一些代码 我正在尝试构建一个连接到 mysql 数据库的程序 我在 Linux 上使用 g 没有想法 我运行 make 这是我的错误 hello cpp 38 error get driver
  • ASP.NET MVC 6 (ASP.NET 5) 中的 Application_PreSendRequestHeaders 和 Application_BeginRequest

    如何在 ASP NET 5 MVC6 中使用这些方法 在 MVC5 中 我在 Global asax 中使用了它 现在呢 也许是入门班 protected void Application PreSendRequestHeaders obj
  • C 中的异或运算符

    在进行按位操作时 我在确定何时使用 XOR 运算符时遇到一些困难 按位与和或非常简单 当您想要屏蔽位时 请使用按位 AND 常见用例是 IP 寻址和子网掩码 当您想要打开位时 请使用包含或 然而 XOR 总是让我明白 我觉得如果在面试中被问

随机推荐

  • 从 Ansible 中的自定义模块访问 playbook 变量[重复]

    这个问题在这里已经有答案了 我正在 Ansible 中编写一个特定于 Playbook 的自定义模块 是否可以直接访问剧本变量 而不需要将其作为参数传递给任务 这是不可能的 因为模块是远程执行的 除非显式传递 否则所有变量都不可用 我有同样
  • 从 X 和 Y 坐标获取纬度和经度

    看起来从经度和纬度到X和Y坐标的转换有丰富的知识 但反过来却没有 这是我根据 Kavrayskiy 的数学计算得出的函数 float xp kavraX radians pv x radians pv y FACTOR float yp k
  • 用字典重新映射 pandas 列中的值,保留 NaN

    我有一本字典 如下所示 di 1 A 2 B 我想将其应用到col1数据框的列类似于 col1 col2 0 w a 1 1 2 2 2 NaN to get col1 col2 0 w a 1 A 2 2 B NaN 我怎样才能最好地做到
  • C# 编组回调

    我正在尝试对结构中的 c 回调进行编组 我很确定我的一切都是正确的 但是当使用我的 C 示例时 我没有收到事件 而当使用 C 时 我确实收到了事件 这是 C class Program DllImport Some dll CharSet
  • django S3 - 修剪图像字段文件名但不修剪 url 路径

    这是我的问题的后续 ImageField FileField Django 表单当前无法修剪文件名的路径 https stackoverflow com questions 47887158 imagefield filefield dja
  • 将焦点设置回其父级?

    来自帖子WPF 如何以编程方式从文本框中删除焦点 https stackoverflow com questions 2914495 wpf how to programmatically remove focus from a textb
  • Number 类型的 DynamoDB 属性中可以存储多少位整数数据?

    DynamoDB 的Number https docs aws amazon com amazondynamodb latest developerguide HowItWorks NamingRulesDataTypes html How
  • 如何向 heroku 添加 API 密钥和其他安全内容?

    我在某处读过 但似乎无法找到将密钥添加到 Heroku 中的位置 而不需要将其放入源代码 git 存储库中 我想当我推送到 github 时这有助于保证它的安全 我该怎么做 这样做有意义吗 http docs heroku com conf
  • 如何在CKEditor中动态切换文本方向

    在我当前的项目中 用户可以用英语和希伯来语输入文本 根据当前文本自动定义方向会很棒 例如 如果文本包含希伯来语符号 则方向应为 RTL 但如果文本不包含希伯来语 则方向为 LTR 文本可以随时更改 我认为最好的解决方案是动态切换方向 就像在
  • 有没有办法强制 NHTMLUNIT 忽略页面 JavaScript 错误并继续脚本执行?

    我是 ASP NET 和 C 项目的一部分 我们正在努力使我们的 asp net 门户对 Google 搜索引擎友好 https developers google com webmasters ajax crawling https de
  • 将事件日志组织到文件夹中

    我想要创建多个服务 并且希望它们将每个服务记录在我指定的同一目录 文件夹下的日志条目中 这样当我打开 Windows 事件查看器时 我可以看到它们全部放置在一个文件夹中 例如 service1 将登录到 service1 log servi
  • jQuery 禁用/启用提交按钮

    我有这个 HTML
  • 在cmake中设置boost的最低版本

    我想定义系统上可用的最低增强版本 我尝试了以下方法 不幸的是 这不起作用 因为它尝试在系统上仅提供 boost 1 40 0 的情况下进行编译 SET Boost USE STATIC LIBS OFF SET Boost USE MULT
  • WPF/控制台混合应用程序

    我编写了一个可以在命令行上运行或使用 WPF UI 运行的应用程序 STAThread static void Main string args Does magic parse args and sets IsCommandLine to
  • C++ 多重定义错误

    我的 Headers h 文件包含基本的 C 标头 include
  • 在 Sequelize 迁移中创建关联

    节点js 续集4 41 尝试通过另一个表制作两个多对多关系的模型 跑步与续集 cli 例如 sequelize model generate name Camera attributes name string sn string 这里是模
  • 复杂圆图

    我花了很多时间尝试在 SVG D3 js 中复制所附的图表 我最接近的是使用附加的代码 我已经探索过使用树函数 但只能创建一组圆圈 所附代码的问题是 通过手动输入每个圆圈必须位于的像素坐标 很难使其看起来平滑且智能 作为信息 数据集只会为这
  • 在哪里记录 C 或 C++ 中的函数? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我有一个包含多个文件的 C 程序 所以我有 例如 stuff c它实现了一些功能 并且stuff h与函数原型 我应该如何在注释中记录功能 我应
  • * 或 & 的位置重要吗? [复制]

    这个问题在这里已经有答案了 可能的重复 在C中 为什么星号在变量名之前 而不是在类型之后 https stackoverflow com questions 398395 in c why is the asterisk before th
  • 如何创建不重复的随机数?

    我正在尝试为老年之家创建一款宾果游戏 我能够使用用于扫描数组的随机数生成器来制作一个 但问题是需要很长时间 2 分钟 来搜索数组并确保没有重复的双精度数 我做了一些研究 发现 c 中称为伪随机的东西在创建时不会重复数字 但代码看起来非常复杂