1 #coding:utf-8
2 import random
3
4 # random.randint(1,10)产生1,10的随机整数
5 for i in range(1,5):
6 ranint = random.randint(1,10)
7 print(ranint, end=" ")
8 print()
9
10 #random.random()产生0,1之间的随机数
11 for j in range(1,5):
12 ran_1 = random.random()
13 print(ran_1,end=" ")
14 print()
15 #random.uniform(10,20)产生指定区间的随机符点数
16 for a in range(1,5):
17 ran_2 = random.uniform(10,20)
18 print(ran_2,end=" ")
19 print()
20
21 #random.randrange(10,20,2)在指定区间上以特定步长产生随机数
22 for b in range(1,5):
23 ran_3 = random.randrange(10,20,2)
24 print(ran_3,end=" ")
25 print()
26 for c in range(1,5):
27 ran_4 = random.choice(range(10,20,2))
28 print(ran_4,end=" ")
29 print()
30
31 #random.choice从序列中获取一个随机元素
32 ran_5 = random.choice(['a','b','c','d'])
33 print(ran_5)
34
35 #random.shuffle(x[, random]),用于将一个列表中的元素打乱
36 p = ['I','love','you','and','do','you','hate','me']
37 ran_6 = random.shuffle(p)
38 print(p)
39
40 #random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。
41
42 list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
43 slice = random.sample(list, 5) #从list中随机获取5个元素,作为一个片断返回
44 print(slice)
45 print(list) #原有序列并没有改变。
46
47 #random.sample(population, k)产生指定序列的指定长度的随机数,可利用此方法产生10位随机密码
48 #列表转字符串方法:“”.join(list)
49 #字符串转列表方法:list(str)
50 ran_7 = random.sample('abcdefghijklmnopqrstuvwxyz1234567890!@#$%^&*():"?><',10)
51 print("".join(ran_7))
52
53 #random.triangular(low, high, mode)
54 # random.triangular(低,高,模式)
55 # 返回一个随机浮点数N,以便在这些边界之间使用指定的模式。该低和高界默认的0和1。
56 # 所述模式参数默认为边界之间的中点,给人一种对称分布。low <= N <= high
57 ran_8 = random.triangular(10,20)
58 print(ran_8)
59
60 # random.betavariate(alpha,beta )
61 # Beta分发。参数的条件是和 。返回值的范围介于0和1之间。alpha > 0beta > 0
62 ran_9 = random.betavariate(2,9)
63 print(ran_9)
64
65 # random.expovariate(lambd )
66 # 指数分布。 lambd是1.0除以所需的平均值。它应该是非零的。
67 # (该参数将被称为“拉姆达”,但是这是在Python保留字。)
68 # 返回值的范围从0到正无穷大如果lambd为正,且从负无穷大到0,如果lambd为负。
69 for i in [0.01,0.2,1,33,-0.02,-0.99,-22,-88]:
70 ran_10 = random.expovariate(i)
71 print(ran_10,end=" ")
72
73 # random.gammavariate(alpha,beta )
74 # Gamma分布。(不是伽玛函数!)参数的条件是和。alpha > 0beta > 0
75 #
76 # 概率分布函数是:
77 #
78 # x ** (alpha - 1) * math.exp(-x / beta)
79 # pdf(x) = --------------------------------------
80 # math.gamma(alpha) * beta ** alpha
81 # random.gauss(mu,sigma )
82 # 高斯分布。 mu是平均值,sigma是标准偏差。这比normalvariate()下面定义的函数稍快。
83 #
84 # random.lognormvariate(mu,sigma )
85 # 记录正态分布。如果你采用这个分布的自然对数,你将获得具有平均μ和标准偏差西格玛的正态分布。 mu可以有任何值,sigma必须大于零。
86 #
87 # random.normalvariate(mu,sigma )
88 # 正态分布。 mu是平均值,sigma是标准偏差。
89 #
90 # random.vonmisesvariate(mu,kappa )
91 # mu是平均角度,以弧度表示,介于0和2 * pi之间,kappa 是浓度参数,必须大于或等于零。如果 kappa等于零,则该分布在0到2 * pi的范围内减小到均匀的随机角度。
92 #
93 # random.paretovariate(alpha )
94 # 帕累托分布。 alpha是形状参数。
95 #
96 # random.weibullvariate(alpha,beta )
97 # 威布尔分布。 alpha是scale参数,beta是shape参数。
98
99 # 基本示例:
100 #
101 # >>>
102 # >>> random() # Random float: 0.0 <= x < 1.0
103 # 0.37444887175646646
104 #
105 # >>> uniform(2.5, 10.0) # Random float: 2.5 <= x < 10.0
106 # 3.1800146073117523
107 #
108 # >>> expovariate(1 / 5) # Interval between arrivals averaging 5 seconds
109 # 5.148957571865031
110 #
111 # >>> randrange(10) # Integer from 0 to 9 inclusive
112 # 7
113 #
114 # >>> randrange(0, 101, 2) # Even integer from 0 to 100 inclusive
115 # 26
116 #
117 # >>> choice(['win', 'lose', 'draw']) # Single random element from a sequence
118 # 'draw'
119 #
120 # >>> deck = 'ace two three four'.split()
121 # >>> shuffle(deck) # Shuffle a list
122 # >>> deck
123 # ['four', 'two', 'ace', 'three']
124 #
125 # >>> sample([10, 20, 30, 40, 50], k=4) # Four samples without replacement
126 # [40, 10, 50, 30]
127 # 模拟:
128 #
129 # >>>
130 # >>> # Six roulette wheel spins (weighted sampling with replacement)
131 # >>> choices(['red', 'black', 'green'], [18, 18, 2], k=6)
132 # ['red', 'green', 'black', 'black', 'red', 'black']
133 #
134 # >>> # Deal 20 cards without replacement from a deck of 52 playing cards
135 # >>> # and determine the proportion of cards with a ten-value
136 # >>> # (a ten, jack, queen, or king).
137 # >>> deck = collections.Counter(tens=16, low_cards=36)
138 # >>> seen = sample(list(deck.elements()), k=20)
139 # >>> seen.count('tens') / 20
140 # 0.15
141 #
142 # >>> # Estimate the probability of getting 5 or more heads from 7 spins
143 # >>> # of a biased coin that settles on heads 60% of the time.
144 # >>> trial = lambda: choices('HT', cum_weights=(0.60, 1.00), k=7).count('H') >= 5
145 # >>> sum(trial() for i in range(10000)) / 10000
146 # 0.4169
147 #
148 # >>> # Probability of the median of 5 samples being in middle two quartiles
149 # >>> trial = lambda : 2500 <= sorted(choices(range(10000), k=5))[2] < 7500
150 # >>> sum(trial() for i in range(10000)) / 10000
151 # 0.7958
152 # 使用重新取样和替换来估计大小为5的样本的均值的置信区间的统计自举的示例:
153 #
154 # # http://statistics.about.com/od/Applications/a/Example-Of-Bootstrapping.htm
155 # from statistics import mean
156 # from random import choices
157 #
158 # data = 1, 2, 4, 4, 10
159 # means = sorted(mean(choices(data, k=5)) for i in range(20))
160 # print(f'The sample mean of {mean(data):.1f} has a 90% confidence '
161 # f'interval from {means[1]:.1f} to {means[-2]:.1f}')
162 # 重新采样置换测试的示例, 以确定药物与安慰剂的效果之间观察到的差异的统计显着性或p值:
163 #
164 # # Example from "Statistics is Easy" by Dennis Shasha and Manda Wilson
165 # from statistics import mean
166 # from random import shuffle
167 #
168 # drug = [54, 73, 53, 70, 73, 68, 52, 65, 65]
169 # placebo = [54, 51, 58, 44, 55, 52, 42, 47, 58, 46]
170 # observed_diff = mean(drug) - mean(placebo)
171 #
172 # n = 10000
173 # count = 0
174 # combined = drug + placebo
175 # for i in range(n):
176 # shuffle(combined)
177 # new_diff = mean(combined[:len(drug)]) - mean(combined[len(drug):])
178 # count += (new_diff >= observed_diff)
179 #
180 # print(f'{n} label reshufflings produced only {count} instances with a difference')
181 # print(f'at least as extreme as the observed difference of {observed_diff:.1f}.')
182 # print(f'The one-sided p-value of {count / n:.4f} leads us to reject the null')
183 # print(f'hypothesis that there is no difference between the drug and the placebo.')
184 # 模拟单个服务器队列中的到达时间和服务交付:
185 #
186 # from random import expovariate, gauss
187 # from statistics import mean, median, stdev
188 #
189 # average_arrival_interval = 5.6
190 # average_service_time = 5.0
191 # stdev_service_time = 0.5
192 #
193 # num_waiting = 0
194 # arrivals = []
195 # starts = []
196 # arrival = service_end = 0.0
197 # for i in range(20000):
198 # if arrival <= service_end:
199 # num_waiting += 1
200 # arrival += expovariate(1.0 / average_arrival_interval)
201 # arrivals.append(arrival)
202 # else:
203 # num_waiting -= 1
204 # service_start = service_end if num_waiting else arrival
205 # service_time = gauss(average_service_time, stdev_service_time)
206 # service_end = service_start + service_time
207 # starts.append(service_start)
208 #
209 # waits = [start - arrival for arrival, start in zip(arrivals, starts)]
210 # print(f'Mean wait: {mean(waits):.1f}. Stdev wait: {stdev(waits):.1f}.')
211 # print(f'Median wait: {median(waits):.1f}. Max wait: {max(waits):.1f}.')
212 # 也可以看看 “黑客统计” 是Jake Vanderplas 关于统计分析的视频教程, 仅使用了一些基本概念,包括模拟,抽样,改组和交叉验证。
213 # 经济模拟Peter Norvig对 市场的模拟 ,显示了该模块提供的许多工具和分布的有效使用(高斯,均匀,样本,beta变量,选择,三角和randrange)。
214 #
215 # 具体的概率介绍(使用Python)Peter Norvig 的教程,涵盖了概率论的基础知识,如何编写模拟,以及如何使用Python进行数据分析。
216
217
218

python随机数学习笔记的更多相关文章

  1. 【原】Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL

    周末的任务是更新Learning Spark系列第三篇,以为自己写不完了,但为了改正拖延症,还是得完成给自己定的任务啊 = =.这三章主要讲Spark的运行过程(本地+集群),性能调优以及Spark ...

  2. Python Click 学习笔记(转)

    原文链接:Python Click 学习笔记 Click 是 Flask 的团队 pallets 开发的优秀开源项目,它为命令行工具的开发封装了大量方法,使开发者只需要专注于功能实现.恰好我最近在开发 ...

  3. 0003.5-20180422-自动化第四章-python基础学习笔记--脚本

    0003.5-20180422-自动化第四章-python基础学习笔记--脚本 1-shopping """ v = [ {"name": " ...

  4. Python Flask学习笔记之模板

    Python Flask学习笔记之模板 Jinja2模板引擎 默认情况下,Flask在程序文件夹中的templates子文件夹中寻找模板.Flask提供的render_template函数把Jinja ...

  5. Python Flask学习笔记之Hello World

    Python Flask学习笔记之Hello World 安装virtualenv,配置Flask开发环境 virtualenv 虚拟环境是Python解释器的一个私有副本,在这个环境中可以安装私有包 ...

  6. 获取字段唯一值工具- -ArcPy和Python案例学习笔记

    获取字段唯一值工具- -ArcPy和Python案例学习笔记   目的:获取某一字段的唯一值,可以作为工具使用,也可以作为函数调用 联系方式:谢老师,135-4855-4328,xiexiaokui# ...

  7. Python高级学习笔记

    Python高级学习笔记,此笔记中包含Linux操作系统.Html+CSS+JS.网络协议等. 所有思维导图为本人亲手所画,请勿用于商用. 大哥们,求点赞哦. 第一天笔记:链接 第二天笔记:链接 第三 ...

  8. Python入门学习笔记4:他人的博客及他人的学习思路

    看其他人的学习笔记,可以保证自己不走弯路.并且一举两得,即学知识又学方法! 廖雪峰:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958 ...

  9. Python 基础学习笔记(超详细版)

    1.变量 python中变量很简单,不需要指定数据类型,直接使用等号定义就好.python变量里面存的是内存地址,也就是这个值存在内存里面的哪个地方,如果再把这个变量赋值给另一个变量,新的变量通过之前 ...

随机推荐

  1. seckill(1)秒杀系统主要步骤

  2. 使用SSD检测框架训练自己的数据

    数据集做好后,训练程序为/examples/ssd/ssd_pascal.py,运行之前,我们需要修改相关路径代码,主要是训练路径的修改和关于自己数据集参数的一些修改. cd /examples/ss ...

  3. js优化总结

    避免全局查找 在一个函数中会用到全局对象存储为局部变量来减少全局查找,因为访问局部变量的速度要比访问全局变量的速度更快些 function search() {    //当我要使用当前页面地址和主机 ...

  4. elasticsearch(6) 映射和分析

    类似关系型数据库中每个字段都有对应的数据类型,例如nvarchar.int.date等等,elasticsearch也会将文档中的字段映射成对应的数据类型,这一映射可以使ES自动生成的,也是可以由我们 ...

  5. PHP协程入门详解

    概念 咱们知道多进程和多线程是实现并发的有效方式.但多进程的上下文切换资源开销太大:多线程开销相比要小很多,也是现在主流的做法,但其的控制权在内核,从而使用户(程序员)失去了对代码的控制,而且线程的上 ...

  6. 2019-04-19-day036-协程与进程池

    内容回顾 11:30 码云 :王老师检查作业+定期抽查 注册账号 考试的时间 threading.enumerate(),能够获取到当前正在运行的所有线程对象列表 守护线程 守护线程会等待所有的非守护 ...

  7. ES6箭头函数Arrow Function

    果然,隔了很长时间都没有来博客园上逛了...... 前一段时间一直在忙我们参加的一个比赛,转眼已经好久没有来逛过博客园了,果然还是很难坚持的...... 今天总算还是想起来要过来冒个泡,强行刷一波存在 ...

  8. python基础—字典的使用{}

    info = {'stu1':"lili", 'stu2':'yoyo', 'stu3':'dudu'}print(info)print(info['stu1'])info['st ...

  9. centos6.5安装Mysql5.6及更改密码

    (一) centos6.5安装Mysql5.6 二进制文件安装的方法分为两种: 第一种是不针对特定平台的通用安装方法,使用的二进制文件是后缀为.tar.gz的压缩文件: 第二种是使用RPM或其他包进行 ...

  10. 奇偶个数-python

    #Odd and Even.py #读入字符串转化成数字 Input = eval(input("输入数字")) odd = 0 #奇数 even = 0 #偶数 #循环 whil ...