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. SQLZOO网页中SQL的答案(SELECT from nobel篇)

    SELECT from nobel篇 1. 更改查詢以顯示1950年諾貝爾獎的獎項資料. 答案: SELECT yr, subject, winner FROM nobel WHERE yr = 19 ...

  2. Codeforces Round #369 (Div. 2) C. Coloring Trees(简单dp)

    题目:https://codeforces.com/problemset/problem/711/C 题意:给你n,m,k,代表n个数的序列,有m种颜色可以涂,0代表未涂颜色,其他代表已经涂好了,连着 ...

  3. 根据图片URL获取图片的尺寸【Swift语言实现】

    import UIKit extension UIImage { /// 获取网络图片尺寸 /// /// - Parameter url: 网络图片链接 /// - Returns: 图片尺寸siz ...

  4. L362 When to Bring up Salary During the Job Interview Process

    Money is an awkward topic of conversation for many professionals—even more so when you’re busy tryin ...

  5. VBA在WORD应用中如何确定文本是否被选定

    确定文本是否被选定Selection 对象的 Type 属性返回所选内容类型的信息.如果所选内容为插入点,则下列示例显示一条消息. Sub IsTextSelected()    If Selecti ...

  6. poi读取excel工具类

    package com.manage.utils; import ch.qos.logback.core.net.SyslogOutputStream; import com.google.gson. ...

  7. java对excel操作

    package test; import jxl.*; import jxl.Cell; import java.io.*; /** * 读取excel */ public class TestExc ...

  8. linux查看日志文件命令

    转:https://www.cnblogs.com/zdz8207/p/linux-log-tail-cat-tac.html linux查看日志文件内容命令tail.cat.tac.head.ech ...

  9. 安装activeMQ(window,linux系统)

    今天学习了activeMQ服务器,把它说成成服务器是我的理解,,呵呵,首先,说一下它的安装, 官网:http://activemq.apache.org/overview.html window下的安 ...

  10. 在虚拟机上利用宿主机共享目录编译linux程序

    #前提条件: 宿主机:windows7 虚拟机:REDHAT 开发环境 qt4.7.4 +vs2010 . 代码在windows7 上编译成功 ,运行正常 在linux下编译需要的第三方库已经编译成功 ...