怎么根据0-5随机函数得到0-8随机函数

C语言随机函数和时间函数 c语言中的随机函数为rand(),但是rand生成的值得大小主要相对一个变量才产生的一定有含义的数,这个相对的变量我们可以再srand()函数中进行设置,srand函数是void类型,内部含一个无符号整形 定义如下 如果我们不定义的话 重复执行下面的代码产生的效果可能是同一个数 但是如果在srand()中设置一个随时改变的参照量,那么每次执行产生的rand值就不会痛, 我们知道有一个函数tim... 阅读详情

先说说想法,可以使用0-5随机函数产生0-11的随机函数,再使用0-11随机函数产生0-8的随机函数,代码如下:

#include<stdio.h>
#include <stdlib.h>
#include <time.h>

int rand0to5()
{
	return rand() % 6;
}

int rand0to11()
{
	
	if (rand0to5() <= 2)
	{
		return rand0to5();
	}
	else
	{
		switch (rand0to5())
		{
			case 0:return 6;
			case 1:return 7;
			case 2:return 8;
			case 3:return 9;
			case 4:return 10;
			case 5:return 11;
		}
	}
}

int rand0to8()
{
	return rand0to11() % 9;
}

int main()
{
	for (int i = 0; i < 100; i++)
	{
		printf("%d\n", rand0to8());
	}
	getchar();
	getchar();
}

如果不考虑概率的问题,完全可以直接使用0-5随机函数产生0-8的随机函数,而使用0-5产生0-11随机函数可以保证0-11随机函数的概率是相等的,但在使用0-11产生0-8随机函数时概率又不相等了,这样只有用0-5随机函数产生更大范围的随机函数才能使概率趋于相等,比如使用0-5随机函数先产生0-110或者0-1100甚至0-11000....的随机函数,再产生0-8的随机函数,这样产生数的概率就会趋于相等。

但从根本上说,随机函数rand()产生的数是0-32767 (2^16-1),这样使得在产生0-5随机函数时产生数的概率并不相等,因此无论使用0-5随机函数产生任何随机函数所产生数的概率都是不相等的。

20230118更新

rand0to11()遇到9,10,11的时候确实需要抛弃,否则0,1,2的概率比3-8高,感谢指点。rand0to8()函数修改如下:

int rand0to8()
{

    int tem=rand0to11();

    if(tem<9) return tem;
  
}

STGCN+YOLOV8行为分类 使用关节点追踪网络获取关节点数据,以yolo-v8网络为例,获取2D关节点数据。此次实验采用KTH动作识别数据集,包含人步行、慢跑、跑步、拳击、挥手和拍手等动作。 阅读详情

相关推荐

Cadence Allegro安装全攻略:从准备到优化的完整指南

本文提供了一份详尽的Cadence Allegro安装教程,涵盖从系统准备、硬件要求到获取安装文件的完整前期工作。指南逐步解析了自定义安装、路径选择及核心组件配置,并重点阐述了许可证服务器的环境变量设置与服务启动等关键激活步骤,最后给出了首次启动验证、个性化优化及常见问题排错方案,助您高效完成安装与配置。

weixin_29243063的博客 186

生成随机数(根据rand5()生成rand7())

主要是等概率生成问题,强烈推荐力扣这个题解:从抛硬币开始,循序渐进把这道题吃透!看不懂算我输! 也可参考下:今日头条面试题:生成随机数(根据rand5()生成rand7()) ...

qq_38261075的博客 360

Linux之SUSE系统SAP-HANA经常系统内存不足使得SAP应用不能使用解决方案

问题描述 Linux内存使用量超过阈值,使得sap应用程序无可用内存,最终导致程序崩溃。 问题原因 自己查阅了一些资料,也基于zabbix的可用内存和实际不太一样入手去找原因发现问题出现于Cached的值过大,导致系统没有可以再分配的内存空间。Cached只要用来缓存文件的,经常读写的文件会被缓存到Cached中,可以增加读写效率,该功能是Linux系统内核提供的,而SAP-HANA的日志文件很大...

liuxiangyang_的博客 6711

概率题之随机数的生成

使用函数rand5()来实现函数rand7() 参考 给你一个能生成1到5随机数的函数,用它写一个函数生成1到7的随机数。 (即,使用函数rand5()来实现函数rand7())。 rand5可以随机生成1,2,3,4,5;rand7可以随机生成1,2,3,4,5,6,7。 rand5并不能直接产生6,7,所以直接用rand5去实现函数rand7似乎不太好入手。 如果反过来呢?给你rand7,让你实现rand5,这个好实现吗? 使用函数rand7()来实现函数rand5() 一个非常直观的想法就是不断地调用

AndyJ的学习之旅 1144

Claude Code VSCode集成开发指南:AI编程助手完整配置

Claude Code与Visual Studio Code的深度集成为开发者提供了强大的AI编程支持。本文详细介绍Claude Code VSCode扩展的安装配置、功能特性和实际应用方法。通过完整的配置流程和代码示例,帮助开发者充分利用Claude AI的智能编程能力。文章涵盖从环境搭建到高级功能应用的完整指南,包括代码自动补全、智能重构、实时代码分析等核心功能的使用技巧,以及与现有开发工作流的整合方案。

2501_93058131的博客 5983

IDEA 2023.2.3全平台安装指南:Mac/Windows/Linux一键激活(附最新补丁获取)

本文提供IDEA 2023.2.3在Mac、Windows和Linux三大平台的一键安装与激活指南,包含最新补丁获取方法。详细讲解各系统安装流程、性能调优设置及高效开发技巧,帮助开发者快速配置并提升工作效率。

weixin_28832121的博客 397

算法:由0-5随机数设计0-8随机数

首先生成两个0-5的随机数a和b。 由a和b组成两位六进制数ab,(00-55 由于a和b都是随机的,则00-55范围内的数也是随机的)。 将ab化成十进制c=a*6+b。 将出现整行的模9,未出现整行的过滤掉即可。 /** * 00-55 六进制 * 0-35 * 0 1 2 3 4 5 6 7 8 * 9 10 11 12 13 14 15 16 17 * 18 19 20 21 22 23 24 25 26 * 27 28 29 30 31 32 33 34

渣渣 2878

ESP32-S3模组上兼容SCCB总线与I2C总线的解决方案(1)

ESP32-S3模组上兼容SCCB总线与I2C总线的解决方案(1)

phmatthaus的专栏 775

Algorithm - 由rand5()求rand8()

1. 公式: rand5() + 5 * rand5() + pow(5, 2) * rand5() + ... + pow(5, x) * rand5(); 2. 示例程序: /* 随机产生0~4之间的整数 */ int rand5(); /* 随机产生0~7之间的整数 */ int rand8() { int result; /* 随机产生0~7之间的整数 */

xsj1987的专栏 760

基于OpenCV和Dlib的头部姿态估计详细教程

本文详细介绍了基于OpenCV和Dlib的头部姿态估计方法。通过分析2D人脸特征点与3D头部模型的对应关系,利用PnP(Perspective-n-Point)算法求解头部在三维空间中的姿态。文章首先阐述了坐标系统转换原理,包括世界坐标系、相机坐标系和图像坐标系的转换关系,随后深入讲解了PnP问题的数学表述及求解步骤,并提供了使用Dlib检测68个面部特征点的代码示例。最后介绍了3D通用头部模型的构建方法,包括6点和14点模型的选择,为计算机视觉中的头部姿态估计提供了完整的技术实现方案。

FJN110的博客 338

32GB Jetson Orin SOM 不能刷机问题排查

拿到了一个新的Orin SOM,当用orin Devkit CVB或定制的CVB不能用Linux_For_Tegra刷机,flash日志(JetPack5.0DP和5.0.1DP都失败了) 2. 确认mb2配置中将CVB的eeprom读取大小设置是否为0 ? 已经确认是正常的 在定制的orin cvb flash上使用Orin devkit som,启动是成功的。但新得到的Orin som并不工作可以排除理由:使用Orin Devkit CVB和Orin SOM(不是Devkit SOM)仍然不能

jzwjzw19900922的博客 1499

由0-5的随机数,生成0-90的随机数

问题:由0-5的随机数,生成0-90的随机数 解决思路:进制转换,0-5的随机数生成3位,最大值就是4 * 5 ^ 2 + 4 * 5 ^ 1 + 4 * 5 ^ 0 = 124 生成三位随机的0-5,然后再做判断,和330(90对应的5进制)做比较,剔除>330的数据 ...

u011624157的专栏 2367

Hindsight 内存爆炸 4 个词排查清单:9,284 条 6 成是 SSH 调试日志——Agent 标签系统的实战复盘

9,284 条记忆里 66% 是 SSH 调试日志。4 个标签被滥用=0 区分度。3 个 entity_labels + retain_mission + retain_every_n_turns 配置把噪声压回 5%——附 PATCH 脚本和实测前后数据。

Starry-SkyJing的博客 57

随机出现 不相等的0--8的数

int CreatMatrix(int *matrix) { int i,j; int buf; for(i=0;i<9;i++) { getElem: srand((unsigned)time(NULL)); buf=rand()%9; for(j=0;j<i;j++) ...

weixin_30364147的博客 121

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

第一次随机出5个8,呵呵………好运快到了吧!

        5个8的随机图片 

不甘心一辈子平庸!再向前走两步,或许就会见到成功! 931

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Python 之 NumPy 随机函数和常用函数

随机函数,数组的其他函数

每天进步一点点! 2007

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

python随机生成中文字符串_用Python生成随机UTF-8字符串

下面是一个示例函数,它可能创建一个随机的格式良好的UTF-8序列,如Unicode 5.0.0的表3-7所定义:#!/usr/bin/env python3.1# From Table 3–7 of the Unicode Standard 5.0.0import randomdef byte_range(first, last):return list(range(first, last+1))...

weixin_39561577的博客 551

随机函数_VB类型转换函数和随机函数用法

本节课程,我们一起学习VB中的类型转换函数和随机函数。类型转换函数包括:Asc、Chr、Val、Str、Hex随机函数包括:Rnd、Randomize一、类型转换函数1,Asc函数返回一个 Integer,代表字符串中首字符的ASCII字符代码。语法:Asc(string)必要的 string 参数可以是任何有效的字符串表达式。如果 string 中没有包含任何字符,则会产生运行时错误。...

weixin_39785669的博客 976

给定能随机生成整数1到5的函数,写出能随机生成整数1到7的函数

#include #include #include #include #include using namespace std; int rand5() { //随机生成[1-5]之间的随机数 return (rand() % 5 + 1); } int rand7_1() { //随机生成[1-7]之间的随机数 int a; while((a = rand5() * 5 + ra

yake25的专栏 2689

产生随机小数_Excel办公技巧:运用RANDBETWEEN函数生成随机密码和随机编码

今天我们学习运用RANDBETWEEN函数生成随机密码和随机编码,在讲解案例前,先了解一下RANDBETWEEN函数。RANDBETWEEN函数的语法结构和特征RANDBETWEEN函数用于随机生成两个整数之间的整数(可能出现重复)。其语法结构为:RANDBETWEEN(bottom,top),参数bottom为能返回的最小整数, top为能返回的最大整数。结合数学运算,RANDBETWEEN也可...

weixin_39795479的博客 7574

python随机生成数字的函数_python随机函数

python-随机函数random.sample()可以从指定的序列中,随机的截取指定长度的片断,不作原地修改,不重复。random.random()函数是这个模块中最常用的方法了,它会生成一个随机的浮点数,范围是在0.0~1.0之间。random.uniform()正好弥补了上面函数的不足,它可以设定浮点数的范围,一个是上限,一个是下限。random.randint()随机生一个整数int类型,...

weixin_39610229的博客 858

信号的产生——随机函数rand

在实际系统研究和处理中,常常需要产生随机信号,MATLAB提供的rand函数可以生成随机信号。生成一组41点构成的连续随机信号和与之相应的随机序列。

yishuihanq的博客 4127

8 随机积分与随机微分方程

文章目录8.1 关于随机游动的积分 本章的目的是引入关于Brown运动的积分, 讨论其性质 并给出在随机分析及金融学中有着重要应用的Ito公式 8.1 关于随机游动的积分 从讨论关于简单的随机游动的积分开始. 设X1,X2,…,X_1,X_2,…,X1​,X2​,…,是独立的随机变量, $P{X_i=1}=P{X_i=-1}=\frac 12, 令SnS_nSn​表示相应的游动 Sn=X1+...

fgh123的博客 7301

mysql8.0 MySQL函数

part1. MySQL函数介绍 函数表示对输入参数值返回一个具有特定关系的值,MySQL提供了大量丰富的函数,在进行数据库管理以及数据的查询和操作时将会经常用到各种函数。各类函数从功能方面主要分为数学函数,字符串函数、日期和时间函数、条件判断函数、系统信息函数和加密函数等其他函数。 part2. 数学函数 绝对值函数、三角函数(正弦函数、余弦函数、正切函数、余切函数等)、对数函数、随机数函数等。 1. 绝对值函数ABS(x)和返回圆周率的函数PI() ABS(X)返回X的绝对值。 PI(.

S_zhangmin的博客 2650

如何设计等概率的随机函数

本文主要介绍以下主题: 如何设计随机函数,即洗牌算法? 如何设计测试用例检查随机函数的正确性? 随机函数有哪些应用? 如何设计随机函数 Knuth Shuffle的洗牌算法,算法复杂度O(n),洗牌的目的是产生一串等概率的随机列。 1)如何保证等概率:从r个剩余的元素中选择s个元素,那么下一个元素选中的概率为s/r。 2)假设函数bigrand()返回一个大的随机整数(比m和n个大很

公众号(猴子数据分析) 3075
上一篇: 输出斐波那契数列的前n项,n由键盘输入
下一篇: 记一题有趣的有关操作系统的题目
IT_Studio
博客等级 码龄8年 29粉丝 30原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值