python暴力实现本福特定律的例子
概率论给予了我们现实生活直观感觉完全不一样的解释,现实生活中的本福特定律就是一个很好的例子:
就像我们对考第一名印象很深刻,但是之后的第二第三就不怎么去留意;奥运冠军也是一样,所有人都会记得冠军是谁,但是亚军和季军就很少有人想的起来.
这里用python求出阶乘的数值中末尾或者首位出现0-9这10个数字的频率统计,其实(频数/总数)也可近似就是概率:
# -*- coding:utf-8 -*-
# /usr/bin/pythonimport numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
from time import time
from scipy.special import factorial
import mathmpl.rcParams['axes.unicode_minus'] = False
mpl.rcParams['font.sans-serif'] = 'SimHei'def top1(number, a):number /= awhile number >= 10:number /= 10a *= 10return number, adef top2(number, N2):while number >= N2:number /= 10n = numberwhile number >= 10:number /= 10return n, numberdef top3(number):number -= int(number)return int(10 ** number)def top4(number):number -= int(number)frequency[int(10 ** number) - 1] += 1if __name__ == '__main__':N = 100000x = range(1, N+1)frequency = np.zeros(9, dtype=np.int)f = 1print('开始计算...')t0 = time()'''# top1a = 1for t in x:f *= ti, a = top1(f, a)print(t, i, f, a)frequency[i-1] += 1t1 = time()print('1耗时:', t1 - t0)# print(frequency)# top2N2 = N ** 3for t in x:f *= tf, i = top2(f, N2)frequency[i-1] += 1t2 = time()print('2耗时:', t2 - t1)# print(frequency)# Top 3:实现1f = 0for t in x:f += math.log10(t)frequency[top3(f) - 1] += 1t3 = time()print('3_1耗时:', t3 - t2)# print(frequency)# Top 3:实现2y = np.cumsum(np.log10(x))for t in y:frequency[top3(t) - 1] += 1t4 = time()print('3_2耗时:', t4 - t3)# print(frequency)# Top 4:本质与Top3相同y = np.cumsum(np.log10(x))map(top4, y)'''# Top 3:实现2y = np.cumsum(np.log10(x))for t in y:frequency[top3(t) - 1] += 1t5 = time()print('耗时:', t5 - t0)print(frequency)t = np.arange(1, 10)plt.plot(t, frequency, 'r-', t, frequency, 'go', lw=2, markersize=8)for x,y in enumerate(frequency):plt.text(x+1.1, y, frequency[x], verticalalignment='top', fontsize=15)plt.title(u'%d!首位数字出现频率' % N, fontsize=18)plt.xlim(0.5, 9.5)plt.ylim(0, max(frequency)*1.03)plt.grid(b=True)plt.show()# 使用numpy# N = 170# x = np.arange(1, N+1)# f = np.zeros(9, dtype=np.int)# t1 = time()# y = factorial(x, exact=False)# z = map(top, y)# t2 = time()# print '耗时 = \t', t2 - t1# for t in z:# f[t-1] += 1# print f
python暴力实现本福特定律的例子相关推荐
- python暴力破解压缩包密码(python暴力破解zip压缩包)
python暴力破解压缩包密码 简介 简介: ZIP文件格式是一种数据压缩和文档储存的文件格式,原名Deflate,发明者为菲尔·卡茨(Phil Katz),他于1989年1月公布了该格式的资料.ZI ...
- [Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子:
[Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子: mydf001=sqlContext.read.format("jdbc").o ...
- spark to mysql date_[Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子:
[Spark][Python]Spark 访问 mysql , 生成 dataframe 的例子: mydf001=sqlContext.read.format("jdbc").o ...
- python 暴力破解 excel加密文件
python 暴力破解 excel加密文件 'wordlist.txt' 为待测试的密码列表 fdd ddd eeee 5e5e5 58d85d5e d2d4d5d 4d4d4d3 dfdf,d; l ...
- python二重积分_用python求一重积分和二重积分的例子
首先是对一元函数求积分,使用Scipy下的integrate函数: from scipy import integrate def g(x): return (1-x**2)**0.5 #用integ ...
- Python 暴力破解zip文件密码(相对简单的密码)
Python 暴力破解zip文件密码(相对简单的密码) 密码的使用范围很广,首先,我们要明确密码的作用,其次要明白密码的类型. 密码的作用是进行权限的限制,判断用户的合法性,(不 ...
- python基础教程:python实现PID算法及测试的例子
今天小编就为大家分享一篇python实现PID算法及测试的例子,具有很好的参考价值,希望对大家有所帮助.一起跟随小编过来看看吧 PID算法实现 import timeclass PID:def __i ...
- 常见数字规律:帕累托定律与本福特定律
帕累托定律:又名二八定律,揭示了一类常见的投入-产出不平衡的现象,认为80%的产出实际上是由20%的最top的投入决定的. 这个定律适用范围非常广泛,比如少部分大客户,贡献了大部分的销售额,巨量的财富 ...
- python代码:闭包closure的一个例子
python代码:闭包closure的一个例子 #!/usr/bin/python # -*- coding: UTF-8 -*- """ @author: @file: ...
最新文章
- 起搏器可以用计算机吗,关于起搏器患者能否做核磁共振的最全说法
- MapReduce基础开发之二数据去重和排序
- 最实用的logback讲解(2)—appender
- mdp文件-Chapter4-MD.mdp
- 致:WWF技术博客领跑者WXWINTER--兰竹梅菊.春夏秋冬
- Windows XP时代终结:假设你还在用它怎么办
- jstl 处理Date 时间
- sourcetree不好做到的一些git操作
- TortoiseGit 单文件版本对比_入门试炼_09
- 操作系统中的死锁_操作系统中的死锁介绍
- 病毒传播数学建模matlab分析,数学建模MATLAB之分析法(一)
- Atitit.Gui按钮与面板---项目规模的评估----文件数统计,结构,代码行数,每类型文件行数.
- 几种常见的JS混淆工具比较。
- Python3 Cobalt strike shellcode 免杀过 360 卫士和360杀毒
- python安装math库_Python-math库
- 求边长为一的正方体中,面对角线组成的正四面体体积.
- HTML(常用标签与超链接)的案例
- 九度OJ—题目1015:还是A+B
- 城市规划计算机辅助设计综合实践,城市规划计算机辅助设计综合实践:AutoCAD2015/ArcGIS/PS/SU...
- 荣耀magic3会用鸿蒙,荣耀magic3怎么样-荣耀magic3配置分析
热门文章
- 如何进行网页背景音乐的设置
- 《Network Warrior中文版(第2版)——思科网络工程师必备手册》一导读
- 到公司做华为认证网络工程师有发展前途吗?
- 计算机科学和建工程的区别,计算机科学与计算机工程的区别在哪里
- Java模拟电影院购票系统
- NFS介绍及服务器搭建
- javascript +
- idea导入web项目教程
- Easy Connect 无法连接服务器,请检查网络是否可用
- Sqoop进行导入数据到Hive时报错:ERRORtool.ImportTool:Importfailed:java.io.IOException:java.lang.ClassNotFoundExc