`

C++随机数

阅读更多

闲来无事,学习下老朋友C++的随机数~

#include<iostream.h>
#include<time.h>
#include<stdlib.h>
const double MinProb=1.0/(RAND_MAX+1);
bool happened(double probability)//probability 0~1
{
    if(probability<=0)
    {
return false;
    }
    if(probability<MinProb)
    {
        return rand()==0&&happened(probability*(RAND_MAX+1));
    }
    if(rand()<=probability*(RAND_MAX+1))
    {
        return true;
    }
    return false;
}
long myrandom(long n)//产生0~n-1之间的等概率随机数
{
    int t=0;
    if(n<=RAND_MAX)
    {
        long r=RAND_MAX-(RAND_MAX+1)%n;//尾数
        t = rand();
        while ( t > r )
       {
            t = rand();
       }
        return t % n;
    }
    else
    {
        long r = n%(RAND_MAX+1);//余数
        if( happened( (double)r/n ) )//取到余数的概率
       {
            return n-r+myrandom(r);
       }
        else
       {
            return rand()+myrandom(n/(RAND_MAX+1))*(RAND_MAX+1);
       }
	}
}
	
int main(int argc, char* argv[])
{
	int num = 0;
	int result = 0;
	system("color 70");
	while(true){
		cout<<"输入一个你要玩耍的数字【1---任意】,如果想要抛弃我,请按0键"<<endl;
		cin>>num;
		cout<<endl;
		if(num == 0) {
			break;
		}
		while(num <= 0) {
			cout<<"不要闹,输入一个你要玩耍的数字【要大于1哦】"<<endl;
			cin>>num;
			cout<<endl;
		}
		result = myrandom(num);
		cout<<"根据你输入的数字,获取的随机数是:"<<result<<endl;
		system("pause");
	}
	return 0;
}

 

分享到:
评论

相关推荐

    c++随机数产生器

    在给定的标题“c++随机数产生器”和描述中,我们关注的是如何在Visual Studio 2012环境下编写一个能够生成指定范围内任意数量随机数的函数。下面将详细介绍这一主题。 首先,随机数生成通常涉及到两个关键部分:...

    C++随机数生成(无关联随机数)

    在C++编程中,生成随机数是一项常见的任务,特别是在模拟、游戏开发、数据分析等领域。无关联随机数,或称为伪随机数,是指通过特定算法生成的一系列看似随机但实际上可预测的数字序列。这些序列在数学上是确定性的...

    c++随机数产生函数

    c++随机数产生函数 c++随机数产生函数是生成随机数的函数,主要包括rand()和srand()两个函数。rand()函数用来产生随机数,而srand()函数用来设置随机数种子。 rand()函数 rand()函数用来产生随机数,函数原型为`...

    C++随机数计时器代码

    在这个“C++随机数计时器代码”项目中,我们可以理解为作者创建了一个程序,该程序不仅能够生成随机数,还具有实时显示系统时间的功能,并且可能包含一个计时器来跟踪或控制程序的运行时间。下面将详细解释这些知识...

    C和C++随机数或字符串生成源码学习资料.pdf

    "C 和 C++ 随机数或字符串生成源码学习资料" 标题解析 该文件名"C 和 C++ 随机数或字符串生成源码学习资料.pdf"表明了该文档的主要内容是关于C和C++语言中随机数或字符串生成的学习资料。 描述解析 该描述"C 和 ...

    c/c++随机数生成

    ### C/C++ 随机数生成方法详解 #### 一、引言 在软件开发过程中,随机数的生成是一项非常重要的技术。无论是游戏开发、密码学还是统计模拟等领域,都需要高质量的随机数来支持应用的正常运行。本文将详细介绍在C/...

    C++随机数的代码实现

    C++随机数的代码实现 只能获取整数,如果要获取分数可以获取两个随机数,然后做除法

    C++ 随机数 冒泡、快速、归并、希尔排序 排序时间

    在C++编程中,处理随机数和排序是两个常见的任务,尤其在数据分析、算法实现以及性能测试中。本文将深入探讨如何使用C++生成随机数,以及如何应用四种不同的排序算法——冒泡排序、快速排序、归并排序和希尔排序,并...

    随机数类 c++实现 及随机数跑硬币的应用

    通过运行这个程序,我们可以观察到每次执行时抛硬币的结果都是随机变化的,这就是C++随机数类的直观应用。 总的来说,理解和掌握C++中的随机数生成机制是编程中必不可少的技能,特别是在需要模拟随机事件或进行数据...

    C++随机数的生成归纳.pdf

    C++随机数的生成归纳.pdf

    qt c++随机数

    Qt C++ 随机数产生机理 Qt 中的随机数产生机理是一个复杂的过程,它涉及到 C++ 标准库和 Qt 框架的使用。在本文中,我们将详细介绍标准 C++ 的随机数产生机理,以及基于 Qt 的 C++ 随机数的产生。 C++ 标准库中的...

    C++ 随机数与随机种子数的实例

    在C++编程中,随机数是一种非常常见的需求,它们在模拟、游戏开发、数据分析等多个领域都有广泛应用。本文将深入探讨C++中的随机数生成以及随机种子的概念,通过实例代码进行详细解析。 首先,C++中生成随机数的...

    C++随机数的介绍及使用

    在C++编程语言中,生成随机数是一项常见的任务,特别是在模拟、游戏开发、数据分析等领域。C++11引入了 `&lt;random&gt;` 库,极大地改进了生成高质量随机数的方式。本文将详细介绍如何使用 `&lt;random&gt;` 库来生成随机数,并...

    c++随机数生成代码

    在C++编程语言中,生成随机数是一项常见的需求,用于模拟、测试或游戏等多种场景。本文将详细讲解如何在C++中生成随机数,包括在无特定范围和指定范围内生成随机数的方法。 首先,C++标准库提供了一个名为`&lt;random&gt;...

    c++用对话框随机数产生并求和求平均值

    用C++的MFC产生对话框,随机产生5个不同的数显示在静态文本框内,将5 个数求和求平均

    c++ 随机数处理

    ### C++ 随机数处理 #### 背景介绍 在计算机程序设计中,随机数的应用非常广泛,从游戏开发、统计模拟到密码学等领域都有涉及。本篇文章将详细解析一段C++代码,该代码的主要功能是生成80个唯一的学号,并为每个...

    c++随机数的生成程序

    c++编写的程序,可以自动生成一位或两位数的随机数

    C++随机数的生成

    ### C++中随机数生成详解 #### 一、概述 在C++编程中,生成随机数是一项非常重要的功能,尤其在模拟、游戏开发、统计分析等领域有着广泛的应用。C++的标准库提供了两种基本的方式来生成随机数:`rand()` 和 `srand...

    C++生成随机数改进

    在C++编程中,生成随机数是一项常见的任务,特别是在模拟、测试或游戏开发等领域。标准库提供了一些函数来帮助我们生成随机数,但有时我们可能需要更高级的随机数生成方法,以确保结果的均匀分布和不可预测性。标题...

Global site tag (gtag.js) - Google Analytics