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. python的标识符

    1.在pyhon中,标识符由字母.数字.下划线组成 2.在python中,所有标识符可以有字幕,下划线开头,但不能以数字开头 3.python的标识符是区分大小写的 4.以下划线开头的标识符是有特殊意 ...

  2. win10安装java

    java安装还比较顺利,贴两篇亲测可行的教程 1.开发环境安装:https://www.cnblogs.com/shirley-0021/p/8510051.html 2.开发工具安装(Eclipse ...

  3. 机器学习笔记(四)Logistic回归模型实现

     一.Logistic回归实现 (一)特征值较少的情况 1. 实验数据 吴恩达<机器学习>第二课时作业提供数据1.判断一个学生能否被一个大学录取,给出的数据集为学生两门课的成绩和是否被录取 ...

  4. SQL Server用表组织数据

    一.主键 主键作为表中的唯一标识,标识这一列不允许出现重复数据    如果两列或多列组合起来唯一标识表中的每一行,该主键叫“复合主键” 选择主键的原则     最少性      尽量选择单个键作为主键 ...

  5. 关于nginx安装的收藏

    http://blog.csdn.net/yuan_xw/article/details/51181282

  6. kafka学习笔记整理01

    Apache Kafka 消息中间件->流式数据处理平台 特点: 高可靠性(分布式.分区.复制和容错).高吞吐量.持久化 消息模式:1)队列式(或点对点):在点对点消息系统中,消息被保存在队列中 ...

  7. vxlan基础

    1. 为什么需要Vxlan 普通的VLAN数量只有4096个,无法满足大规模云计算IDC的需求,而IDC为何需求那么多VLAN呢,因为目前大部分IDC内部结构主要分为两种L2,L3.L2结构里面,所有 ...

  8. 2019 Power BI最Top50面试题,助你面试脱颖而出系列<上>

    距离4月还剩11天, 你是否还在投简历找工作而机会寥寥? 你是否还在四处奔波疲于面试而结果不意? ....... 知否知否, 天下武功唯快不破, 传说江湖有本Power BI 面试真香秘籍, 能助你快 ...

  9. iis7 绑定多个ssl证书

    默认情况下iis上只能绑定一个ssl证书,如果多的话 会只认一个. 停止IIS 运行[ CMD]  ,  输入 [iisreset /STOP] 第一步:修改配置文件. 然后打开:C:/Windows ...

  10. 【转】干货 | 【虚拟货币钱包】从 BIP32、BIP39、BIP44 到 Ethereum HD Wallet

    虚拟货币钱包 钱包顾名思义是存放$$$.但在虚拟货币世界有点不一样,我的帐户资讯(像是我有多少钱)是储存在区块链上,实际存在钱包中的是我的帐户对应的 key.有了这把 key 我就可以在虚拟货币世界证 ...