寒假 15(前n个数的随机置换的两个算法)(随机数产生)

Posted guguclaire

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了寒假 15(前n个数的随机置换的两个算法)(随机数产生)相关的知识,希望对你有一定的参考价值。

具体实现过程见substitution of int from 1 to n

 

 

 

随机数算法知识:

kitty的随机数算法博客;

 

蒙特卡洛法:统计实验法,大量模拟求概率,用于不可解析函数,或概率分布,的模拟与计算时

将所求解的问题同一定的概率模型相联系,用电子计算机实现统计模拟或抽样,以获得问题的近似解

 

蒙特卡罗方法解题过程的主要步骤: 

a.针对实际问题建立一个简单且便于实现的概率统计模型,使所求的量恰好是该模型的概率分布或数字特征。 

b.对模型的随机变量建立抽样方法,在计算机上进行模拟测试,抽取足够多的随机数。 

c.对模拟实验结果进行统计分析,给出所求解的“估计”。 

d.必要时,改进模型以提高估计精度和减少实验费用,提高模拟效率。

 

 

需要随机数产生技术支持,

随机数产生方法:

 

0~1,乘同余和混合同余,和一种更复杂的——借助0~1分段,离散型随机变量的模拟——连续型随机变量的模拟,逆变换法,舍选法——

 

 

c语言中产生随机数:rand函数,srand函数(利用time提供的值为rand设置种子),time函数

 

 随机变量的概率分布函数:

概率分布函数是概率论的基本概念之一。在实际问题中,常常要研究一个随机变量ξ取值小于某一数值x的概率,这概率是x的函数,称这种函数为随机变量ξ的分布函数,简称分布函数,记作F(x),即F(x)=P(ξ<x) (-∞<x<+∞),由它并可以决定随机变量落入任何范围内的概率。

 

 

 

语言知识:

rand,srand,time组合使用产生符合不同要求的随机数

used辅助数组,像bool值一样,可以优化一些避免重复的对比过程

swap函数,传递指针,temp变量

 

数组文字

如果要使用5,可以直接用5,也可以把5赋给一个变量后使用变量

复合文字就相当于数据5,作为一个常量使用,任何可以使用数组常量的地方都可以使用数组文字,例如给函数传递一个数组参数时

 

初始化一个命名数组可以省略数组大小,编译器会自动计算元素数目

初始化一个数组文字也可以省略数组大小

圆括号扩起来的类型名紧跟初始化列表,没名称不可引用,必须在创建的时候使用,值和相应类型的数组值相同,为一个地址

 

以上是关于寒假 15(前n个数的随机置换的两个算法)(随机数产生)的主要内容,如果未能解决你的问题,请参考以下文章

红包算法

数据结构与算法分析(C语言描述)习题2.7

C++中的随机生成算法

2020牛客寒假算法基础集训营3——E.牛牛的随机数数位DP(待补)

ML之PFI(eli5):基于mpg汽车油耗数据集利用RF随机森林算法和PFI置换特征重要性算法实现模型特征可解释性排序

贪心算法之随机三个数的最小公倍数