扩展随机数

随机数生成

(1)可使用random等系统函数,构造函rand 15 :在[1,5]范围,均匀分布随机函数

 (2)不可使用random,仅仅基于rand15构造rand112:在[1,12]范围,均匀分贝的随机函数

(3)函数randint26:在【2,3,4,5范围内等概率生成某个整数的随机函数。

(4)不可以使用random,仅给予randint26 构造randint212:在[2,...11,12]范围内等概率生成某个整数的随机函数。

对于某个固定范围的随机函数比如 rand15 如果扩展1-12范围内的随机数

可以这么做

(rand15-1)*rand15+rand15 就可以表示1-25内的随机数,原理在代码中注释了

//
//  main.cpp
//  xxxx
//
//  Created by 小康 on 26/04/2018.
//  Copyright © 2018 小康. All rights reserved.
//
#include <iostream>
#include <random>

using namespace std;

int rand15()
{
    //1到5之间的随机数
    return 1+rand() % 5;
}
int rand112()
{
    //(rand15()-1)*5 : 0 5 10 15 25 五个随机数 p1=1/5
    //rand15() 1 2 3 4 5 五个随机数 p2 = 1/5
    //二者任意相加,便可以得到1~25之间的随机数 p = p1*p2 = 1/25
   //再取小于等于12的
    int x=0;
    while(true)
    {
        x=(rand15()-1)*5+rand15();
        if(x<=12) break;
    }
    return x;
 
}
int rand26()
{
    //2到5之间的随机数
    int x;
    while(true)
    {
        x = 1+rand()%5;
        //如果=1,就继续随机
        if(x!=1)
            break;
        
    }
    return x;
}
int rand212()
{
  //道理同上
    int x = 0;
    while(true)
    {
        x=(rand26()-2)*4+rand26()-1;
        if(x<=12&&x>=2)
            break;
    }
    return x;
}
int main()
{
     srand((unsigned)time(NULL));
    for(int i=1;i<=100;i++)
    {
        cout<<rand15()<<" "<<rand112()<<endl;
        cout<<rand26()<<" "<<rand212()<<endl;
        cout<<endl;
    }
    return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏懒人开发

(6.5)James Stewart Calculus 5th Edition:Average Value of a Function

也就是如果 f 在 [a, b] 上连续, 在[a, b]上 一定存在一个点 c, 使得 ....

9820
来自专栏PaddlePaddle

【序列到序列学习】使用Scheduled Sampling改善翻译质量

生成古诗词 序列到序列学习实现两个甚至是多个不定长模型之间的映射,有着广泛的应用,包括:机器翻译、智能对话与问答、广告创意语料生成、自动编码(如金融画像编码)...

1.2K50
来自专栏机器学习实践二三事

CNN中各层图像大小的计算

CNN刚刚入门,一直不是很明白通过卷积或者pooling之后图像的大小是多少,看了几天之后终于搞清楚了,在这里就结合keras来说说各层图像大小是怎么计算的,给...

47080
来自专栏数据处理

numpy常见运算

17430
来自专栏书山有路勤为径

Image Captioning(1)

首先,将图片传送到CNN中,使用预先训练的网络VGG-16或者ResNet。在这个网络的末尾是一个输出类别得分的softmax分类器。但我们不是要分类图像,我们...

29420
来自专栏Petrichor的专栏

tensorflow: bn层 的 decay参数项

探究 batch normalization 过程中的 decay 参数项 在 train 和 test 过程中的不同作用。

33430
来自专栏书山有路勤为径

Batch Normalization怎么加入batch normalization

Batch Normalization 会使你的参数搜索问题变得很容易,使神经网络对超参数的选择更加稳定,超参数的范围会更加庞大,工作效果也很好,也会使你的训练...

9420
来自专栏CreateAMind

keras doc 10终结篇 激活函数 回调函数 正则项 约束项 预训练模型

激活函数可以通过设置单独的激活层实现,也可以在构造层对象时通过传递activation参数实现。

53430
来自专栏木子昭的博客

万能的0和1 之 字典特征抽取

机器是无法识别自然语言的,机器只能识别0和1,经典的案例就是字典特征抽取 0表示不存在 1表示存在 以国漫人物信息,做示例 原始数据 ? ...

30980
来自专栏ACM算法日常

leetcode题解 | 48. 旋转图像

你必须在原地旋转图像,这意味着你需要直接修改输入的二维矩阵。请不要使用另一个矩阵来旋转图像。

10910

扫码关注云+社区

领取腾讯云代金券