随机数

脚本语言学习(七)

为君一笑 提交于 2020-02-16 10:51:05
random库的使用 random库是使用随机数的python标准库 计算机不能产生真正的随机数,但可以产生伪随机数 计算机采用梅森旋转算法生成伪随机数列的元素 random库主要用于生成随机数 random库的函数 基本随机数函数:seed(),random() 扩展随机数函数:randint(),getrandbits(),uniform(),randrange(),choice(),shuffle() 基本随机数函数 计算机产生随机数需要一个随机数种子 随机序列是根据种子来唯一确定的。随机序列里的每个数就是随机数 使用方法 : 例子 : 种子只需要给一次,就可以多次调用random得到多个随机数。也可以不给种子,直接使用random函数,这时的种子是第一次用random时的系统时间 种子的作用 :如果在编程中给出了种子,那么下一次运行时,种子相同,产生的随机数也是相同的,对于使用随机数的程序,可以复现程序运行的过程。如果不使用种子,后面产生的结果就是完全随机 扩展随机数函数 如果在python代码中需要将几行代码放在一行中,要用分号分隔 如果在一行中需要换行,可以在后面加一个反斜杠 来源: https://www.cnblogs.com/CCchaos/p/12315772.html

<转> c/c++生成随机数

穿精又带淫゛_ 提交于 2020-02-14 13:10:40
<一> C/C++怎样产生随机数:这里要用到的是rand()函数, srand()函数,C语言/C++里没有自带的random(int number)函数。 (1) 如果你只要产生随机数而不需要设定范围的话,你只要用rand()就可以了:rand()会返回一随机数值, 范围在0至RAND_MAX 间。RAND_MAX定义在stdlib.h, 其值为2147483647。 例如: #include<stdio.h> #include<stdlib.h> void main() { for(int i=0;i<10;i+) printf("%d/n",rand()); } (2) 如果你要随机生成一个在一定范围的数,你可以在宏定义中定义一个random(int number)函数,然后在main()里面直接调用random()函数: 例如:随机生成10个0~100的数: #include<stdio.h> #include<stdlib.h> #define random(x) (rand()%x) void main() { for(int x=0;x<10;x++) printf("%d/n",random(100)); } (3)但是上面两个例子所生成的随机数都只能是一次性的,如果你第二次运行的时候输出结果仍和第一次一样。这与srand()函数有关。srand()用来设置rand

java 获得各种随机数

限于喜欢 提交于 2020-02-14 11:52:18
获得指定数字范围的随机数 public static String getRandom(int min, int max){ Random random = new Random(); int s = random.nextInt(max) % (max - min + 1) + min; return String.valueOf(s); } public static void main(String[] args) { for (int i=0;i<20;i++){ String random = getRandom(0, 5); System.out.println(random); } } 来源: CSDN 作者: qq_31683775 链接: https://blog.csdn.net/qq_31683775/article/details/104307295

Python之随机数

痴心易碎 提交于 2020-02-13 17:24:39
首先,我们将Python中的随机函数列出来,然后再进行详细讲解 Python中主要有8中随机函数,分别是: choice(seq) randrange([start,]stop[,step]) random() seed([x]) shuffle(lst) uniform(x,y) randint(x,y) sample(sequence,length) 需要注意的是,这些方法是不能直接访问的,需要导入 random 模块,然后通过 random 静态对象调用该方法 1.choice(seq) choice(seq)方法返回一个列表,元祖或者字符串当中的一个随机项。 import random print ( '返回列表[1,2,3,4,5]中的一个随机项:' , random . choice ( [ 1 , 2 , 3 , 4 , 5 ] ) ) print ( '返回range(100)当中的一个数:' , random . choice ( range ( 100 ) ) ) print ( '返回字符串' range '中的一个字符:' , random . choice ( 'range' ) ) 运行结果: 返回列表 [ 1 , 2 , 3 , 4 , 5 ] 中的一个随机项: 2 返回 range ( 100 ) 当中的一个数 : 68 返回字符串 'range'

java随机数生成器

断了今生、忘了曾经 提交于 2020-02-13 15:14:52
一.java.lang.Math.Random 调用这个Math.Random()函数能够返回带正号的double值,取值范围是[0.0,1.0)的左闭右开区间,并在该范围内(近似)均匀分布。 二.java.util.Random 常用函数 protected int next(int bits) :生成下一个伪随机数。 boolean nextBoolean() :返回下一个伪随机数,它是取自此随机数生成器序列的均匀分布的boolean值。 void nextBytes(byte[] bytes) :生成随机字节并将其置于用户提供的 byte 数组中。 double nextDouble() :返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布的 double值。 float nextFloat() :返回下一个伪随机数,它是取自此随机数生成器序列的、在0.0和1.0之间均匀分布float值。 double nextGaussian() :返回下一个伪随机数,它是取自此随机数生成器序列的、呈高斯(“正态”)分布的double值,其平均值是0.0标准差是1.0。 int nextInt() :返回下一个伪随机数,它是此随机数生成器的序列中均匀分布的 int 值。 int nextInt(int n) :返回一个伪随机数,它是取自此随机数生成器序列的、在

java随机数生成的原理

試著忘記壹切 提交于 2020-02-13 15:12:27
一.在j2se里我们可以使用Math.random()方法来产生一个随机数,这个产生的随机数是0-1之间的一个double,我们可以把他乘以一定的数,比如说乘以100,他就是个100以内的随机,这个在j2me中没有。 二.在java.util这个包里面提供了一个Random的类,我们可以新建一个Random的对象来产生随机数,他可以产生随机整数、随机float、随机double,随机long,这个也是我们在j2me的程序里经常用的一个取随机数的方法。 三.在我们的System类中有一个currentTimeMillis()方法,这个方法返回一个从1970年1月1号0点0分0秒到目前的一个毫秒数,返回类型是long,我们可以拿他作为一个随机数,我们可以拿他对一些数取模,就可以把他限制在一个范围之内啦 其实在Random的默认构造方法里也是使用上面第三种方法进行随机数的产生的 对于方法二中的Random类有以下说明: java.util.Random类有两种方式构建方式:带种子和不带种子 不带种子: 此种方式将会返回随机的数字,每次运行结果不一样 public class RandomTest { public static void main(String[] args) { java.util.Random r=new java.util.Random(); for(int i=0

sklearn.model_selection.train_test_split划分训练数据集

微笑、不失礼 提交于 2020-02-12 16:11:40
sklearn的train_test_split train_test_split函数用于将矩阵随机划分为训练子集和测试子集,并返回 划分好的训练集测试集样本和训练集测试集标签。 格式: X_train,X_test, y_train, y_test =model_selection.train_test_split(train_data,train_target,test_size=0.3, random_state=0) 参数解释 : train_data :被划分的样本特征集 train_target :被划分的样本标签 test_size :如果是浮点数,在0-1之间,表示样本占比;如果是整数的话就是样本的数量 random_state :是随机数的种子。 随机数种子:其实就是该组随机数的编号,在需要重复试验的时候,保证得到一组一样的随机数。比如你每次都填 1 , 其他参数一样的情况下 你得到的随机数组是一样的。但填 0 或不填,每次都会不一样。 随机数的产生取决于种子,随机数和种子之间的关系遵从以下两个规则: 种子不同,产生不同的随机数;种子相同,即使实例不同也产生相同的随机数。 示例 >>> import numpy as np >>> from sklearn.model_selection import train_test_split >>> X, y = np

Codeforces 101482F(gym)随机数

坚强是说给别人听的谎言 提交于 2020-02-11 23:53:17
给出n个点,求是否存在一条直线,使得落在直线上的点占所有点的p%以上。 n<=100000 2<=p<=100 #include<iostream> #include<cstdio> #include<cstring> #include<ctime> #include<cstdlib> #define maxn 100010 using namespace std; int n; int p; struct node{ long long x,y; }a[maxn]; bool check(int id1,int id2){ node line; line.x=a[id1].x-a[id2].x; line.y=a[id1].y-a[id2].y; int num=2; for(int i=0;i<n;i++){ if(i==id1||i==id2)continue; node line2; line2.x=a[i].x-a[id1].x; line2.y=a[i].y-a[id1].y; if(line.x*line2.y==line.y*line2.x) num++; } if(100*num>=p*n)return 1; return 0; } int main(){ srand(time(0));rand();rand(); scanf("%d%d",&n,&p); if

LeetCode_398 随机数索引

笑着哭i 提交于 2020-02-11 22:07:57
给定一个可能含有重复元素的整数数组,要求随机输出给定的数字的索引。 您可以假设给定的数字一定存在于数组中。 注意: 数组大小可能非常大。 使用太多额外空间的解决方案将不会通过测试。 示例: int[] nums = new int[] {1,2,3,3,3}; Solution solution = new Solution(nums); // pick(3) 应该返回索引 2,3 或者 4。每个索引的返回概率应该相等。 solution.pick(3); // pick(1) 应该返回 0。因为只有nums[0]等于1。 solution.pick(1); 来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/random-pick-index 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 class Solution { //蓄水池抽样 Map < Integer , Integer > map = null ; //key记录数组中的数字,value记录出现的次数 int [ ] nums = null ; public Solution ( int [ ] nums ) { map = new HashMap < Integer , Integer > ( ) ; this . nums = nums

随机采样方法整理与讲解(MCMC、Gibbs Sampling等)

拟墨画扇 提交于 2020-02-11 20:02:39
http://www.tuicool.com/articles/fqEf6f 本文是对参考资料中多篇关于sampling的内容进行总结+搬运,方便以后自己翻阅。其实参考资料中的资料写的比我好,大家可以看一下!好东西多分享!PRML的第11章也是sampling,有时间后面写到PRML的笔记中去:) 背景 随机模拟也可以叫做蒙特卡罗模拟(Monte Carlo Simulation)。这个方法的发展始于20世纪40年代,和原子弹制造的曼哈顿计划密切相关,当时的几个大牛,包括乌拉姆、冯.诺依曼、费米、费曼、Nicholas Metropolis, 在美国洛斯阿拉莫斯国家实验室研究裂变物质的中子连锁反应的时候,开始使用统计模拟的方法,并在最早的计算机上进行编程实现。[3] 随机模拟中有一个重要的问题就是给定一个概率分布 p ( x ) ,我们如何在计算机中生成它的样本。一般而言均匀分布 U n i f o r m ( 0 , 1 ) 的样本是相对容易生成的。 通过线性同余发生器可以生成伪随机数,我们用确定性算法生成 [ 0 , 1 ] 之间的伪随机数序列后,这些序列的各种统计指标和均匀分布 U n i f o r m ( 0 , 1 ) 的理论计算结果非常接近。这样的伪随机序列就有比较好的统计性质,可以被当成真实的随机数使用。 下面总结这么几点: 1、蒙特卡洛数值积分 2、均匀分布