当前位置: 首页 > news >正文

迄今为止公开发表的最强的Python程序说明贝特朗悖论不是悖论(标题最长?)

Figure_1

虽然三种方法得到的弦都能“覆盖”整个圆,但弦长的分布不同,见上图。

from math import pi
import numpy as np
from PIL import Image as Img, ImageDraw as ID
import matplotlib.pyplot as pltR = 64 # 圆的半径r为1,放大为R
W = H = 2 * R + 16 # 图片比圆大一圈以免有些线画不全
N = 1_00_00 # 这么多次# 圆心为原点,左上(-1, -1),右下(1, 1)
# 输入为原始坐标, N * [x0, y0, x1, y1]
# 画图时左上(0, 0),右下(W, H)
def line (draw, a) :a = R - a * R + 8 # a = W - (a + 1) * R - 8for i in range(N):draw.line( ((a[i,0],a[i,1]), (a[i,2],a[i,3])), fill=255 )def do_it (i) :img = Img.new('L', (W, H)) # 单色'1'比灰度'L'慢draw = ID.Draw(img)# AI说连续多次rand是均匀分布y = np.random.uniform(low=-1.0, high=1.0, size=N)x = np.sqrt(1 - y ** 2)if i == 0: a = np.column_stack((-x, y, x, y))else: # signs别用两次!x *= np.random.choice([-1, 1], size=N)if i == 1:# (x,y)到(0,-1)a = np.column_stack((np.full_like(x, 0), np.full_like(y, -1),  x, y))else:y2 = np.random.uniform(low=-1.0, high=1.0, size=N)x2 = np.sqrt(1 - y2 ** 2) * np.random.choice([-1, 1], size=N)a = np.column_stack((x2, y2, x, y))line(draw, a); img.save(f'/t/{i}.png')# hypotenuse: 斜边a = np.hypot(a[:,2] - a[:,0], a[:,3] - a[:,1])prob = np.sum(a > 3 ** 0.5) / N # 概率# 弦覆盖圆吗?print(prob, (img.histogram()[255] / R ** 2) / pi)return a, str(prob)for i in range(3):a,p = do_it(i); plt.hist(a, bins=50, alpha=0.5, label=p)plt.xlabel('Chord Length', fontsize=12)
plt.ylabel('Frequency', fontsize=12)
plt.xticks(rotation=45, fontsize=9)
plt.grid(axis='y', alpha=0.5) # 显示网格
plt.tight_layout()
plt.legend()
plt.show()

“覆盖图”:

012

参考资料,中文搜“贝特朗悖论”即可,英文可Bing(PDF Bertrand paradox (probability) - Universitetet i Oslo).

http://www.hskmm.com/?act=detail&tid=33377

相关文章:

  • 绝地潜兵2mod替换 - MKT
  • 10.16总结
  • 10.15总结
  • 渲染管线技术详解
  • 第十八篇
  • 在偏执中精进 ——《程序员修炼之道:从小工到专家》第四章读后感
  • 第一次小组作业(四则运算)
  • Codeforces Round 1059 (Div. 3)
  • 升鲜宝生鲜配送供应链管理系统-----仓库作业任务模块开发文档
  • 24 Hongkong B and 2023 ICPC Shenyang
  • 应急响应-vulntarget-k-03
  • 共识的预锚点:AI元人文中的价值原语引导与自动化演进
  • winserver备份到miniio
  • 软考中级 学习总结*(1)
  • 【黑马python】基础 6.Python 容器:列表 元组 字符串 集合 字典
  • 刷题日记—数字读取与判断
  • Linux Mint -- LMDE6升级到LMDE7
  • OI 笑传 #19
  • CF1133 合集
  • 10/18
  • 实验一 现代C++基础编程
  • CF1824D 题解
  • 单目深度估计 - MKT
  • CF1059 Codeforces Round 1059 (Div. 3) 游记
  • newDay12
  • PyTorch与卷积神经网络读书报告
  • QOJ857 Social Distancing
  • 142. 环形链表 II
  • 10.17日学习笔记
  • KV缓存(Key-Value Cache)