在你引用的答案中,算法的C实现示例如下:

#define M 10

#define N 100

int in, im;

im = 0;

for (in = 0; in < N && im < M; ++in) {

int rn = N - in;

int rm = M - im;

if (rand() % rn < rm)

/* Take it */

vektor[im++] = in + 1; /* +1 since your range begins from 1 */

}

The Knuth algorithm. This is a very simple algorithm with a complexity of O(N) (i.e. the numeric range), meaning that it is most usable when M is close to N.

但是你设置M == N,它不是接近但是相等

所以rn和rm的初始值是相同的.所以这不能使算法正常工作,因为:

whatever % rn < rm

总是如此,如345436%22

I basically need to shuffle the array of numbers from 0 to n

这个算法并不是你所需要的:它根本不会对数组进行混洗,它会通过从不断增加的值中选择一个来产生有序的随机数(因此,唯一).像你一样限制值会强制算法发出范围的所有值.

c 语言中随机数填充数组,c – 生成唯一随机数的数组相关推荐

  1. 指针数组下标JAVA_Java语言中可用下标和指针两种方式表示数组元素。

    [判断题]一行可以写多条预处理命令 [判断题]如果一个java程序中有多个类,编译后只生成一个字节码文件,其名字同主类名一致. [判断题]Protected类型的实例变量只能在本类中使用,其他类中不可 ...

  2. Algorithm:C++语言实现之概率算法相关问题(计算机中的概率事件、C语言中的随机事件、产生二维随机数、圆内均匀取点)

    Algorithm:C++语言实现之概率算法相关问题(计算机中的概率事件.C语言中的随机事件.产生二维随机数.圆内均匀取点) 目录 一.概率 1.计算机中的概率事件 1.1.C语言中的随机事件 1.2 ...

  3. 【C语言学习笔记】:如何生成负数随机数并排序输出

    题目要求 随机生成20个[-10, 10]内的随机整数,按照绝对值从小到大排序,并且输出. 先看实现效果 效果如图: 分析 C语言随机函数.排序函数使用,这里面可以参照库函数使用,之前的文章有分析,这 ...

  4. php中字母随机数,由数字字母生成php随机数的方法

    在前面我们都是介绍了php随机数的生成方法,但是没有具体介绍生成的php随机数是什么,那么我们接下来给大家介绍php随机生成数字字母组合的方法,实例分析了php生成随机数及随机字母的相关技巧与用法,非 ...

  5. Java中使用UUID工具类生成唯一标志防止重复

    场景 UUID 是指Universally Unique Identifier,翻译为中文是通用唯一识别码,UUID 的目的是让分布式系统中的所有元素都能有唯一的识别信息. 在某些场景下需要给数据库中 ...

  6. JAVA中通过时间格式来生成唯一的文件名

    有时候我们需要截图,在要截图时,有人用到了时间格式,但是时间格式中的:在文件名称中是不被允许的字符,所以就会报错,如何生成唯一的时间文件名: package com.demo;import java. ...

  7. python循环语句打印三角形_如何使用python语言中的语句遍历循环生成三角形

    在python语言中,除了使用if语句,还可以使用while循环语句,利用多层循环生成不同的图形,如果在特殊位置中断,可以创建不同的图形.下面利用实例说明如何生成三角形,操作如下: 工具/原料 pyc ...

  8. uuid java 重复_Java中使用UUID工具类生成唯一标志防止重复

    import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.secur ...

  9. python生成10个随机数并排序_生成一个随机数的列表,然后对它们进行排序

    首先,我想向您展示完整的代码,稍后我将发表评论:import random def randomNum(): return random.sample(range(1, 100), 5) number ...

最新文章

  1. ssh mysql环境搭建 myeclipse_MyEclipse整合ssh三大框架环境搭载用户注册源码下载
  2. weblogic 的域信任问题
  3. c++ 将集合set的数据输出到数组中_Java集合类(容器类)简介:(摘抄)
  4. 遍历children_589. N叉树的前序遍历
  5. 有关《8zsb》的一些介绍
  6. 电脑任务栏跑到右边去了_为什么程序员下班后只关显示器从不关电脑?
  7. spring什么版本支持java8_升级spring4.1.6和支持java8
  8. 2022年上半年软件设计师上午真题及答案解析
  9. 关于visual studio 2005的中文版下载(最新详细下载点)
  10. 离散化-利用计算机求解y=x,离散信号处理(双语)-中国大学mooc-题库零氪
  11. ewb交通灯报告和文件_简易交通灯控制逻辑电路设计报告
  12. 树莓派自动饮水机编程示例
  13. ANDROID 实现微信通讯录界面
  14. excel对同一个单元格中的内容去重
  15. 学计算机前端技术学院,百度前端技术学院(任务)
  16. 链人亮相纽约纳斯达克,力作国人骄傲区块链创新品牌
  17. 如何使用MATLAB将两张或者多张figure图形合并到一个figure图形里进行对比
  18. 【环境部署】华为云ECS安装MySQL
  19. HTTP劫持是什么?如何防止网站被劫持呢?
  20. Android手机root,查看sqllite数据库文件

热门文章

  1. -webkit-min-device-pixel-ratio的常见值对照
  2. 019、Linux性能监控:memory
  3. Python自然语言处理学习笔记(68):7.9 练习
  4. ZZULIOJ 1071:分解质因子
  5. 信息学奥赛一本通(1408:素数回文数的个数)
  6. 训练日志 2018.12.2
  7. 合唱队形(信息学奥赛一本通-T1264)
  8. 奇偶数判断(信息学奥赛一本通-T1041)
  9. 34 MM配置-采购-采购订单-定义凭证类型
  10. AI(artificial intelligence)的学习