2020-02-04 python-蒙特卡洛学习

1 蒙特卡洛求圆周率PI

calpi-100.png

calpi-1000.png

calpi-10000.png

已解决。需要在界面配置参数--trusted-host pypi.doubanio.com

import random
import numpy as npy
import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse, Circle


def calpai(n=1000):
    #n = 1000
    r = 1.0
    a, b = (0.0, 0.0)
    x_neg, x_pos = a - r, a + r
    y_neg, y_pos = b - r, b + r

    count_circle = 0
    x_circle = []
    y_circle = []
    x_all = []
    y_all = []
    for i in range(0, n):
        x = random.uniform(x_neg, x_pos)
        y = random.uniform(y_neg, y_pos)
        x_all.append(x)
        y_all.append(y)
        if x*x + y*y <= 1.0:
            count_circle += 1
            x_circle.append(x)
            y_circle.append(y)

    pi = (count_circle / float(n)) * 4

    fig, ax = plt.subplots()
    plt.axis([-1, 1, -1, 1])
    cir1 = Circle(xy=(0.0, 0.0), radius=1, alpha=0.5,color='g', fill=False)
    ax.add_patch(cir1)
    ax.scatter(x_all, y_all, color='black', marker='+')
    #ax.scatter(x_circle, y_circle, color='red', marker='+')
    #plt.scatter(x_all, y_all, color='black', marker='+')
    plt.scatter(x_circle, y_circle, color='red', marker='+')
    # Set aspect ratio to be equal so that pie is drawn as a circle.
    plt.axis('equal')  # 让横轴与纵轴相等,这样圆才是圆
    my_title = "samples:"+str(n)+"__PI:"+str(pi)
    plt.title(my_title)
    my_file = my_title+".png"
    plt.savefig("my_file.png") ## ing
    plt.show()

    return pi

def main():
    print('this message is from main function~')
    print(calpai(10000))

if __name__ == '__main__':
    main()

附录 调试快捷键-转

image.png

F8:step over 单步
遇到断点后,程序停止运行,按F8单步运行。

F7:step into 进入
配合F8使用。单步调试F8时,如果某行调用其他模块的函数,在此行F7,可以进入函数内部,如果是F8则不会进入函数内容,直接单步到下一行。

Alt+shift+F7:step into mycode,
个人理解F8和F7的综合。1、没遇到函数,和F8一样;2、遇到函数会自动进入函数内部,和F8时按F7类似的

shift+F8:跳出
调试过程中,F7进入函数内后,shift+F8跳出函数,会回到进入前调用函数的代码。不是函数地方shift+F8跳出,怎么用没太明白,但最终会执行到结束。

F9:resume program
按翻译是重启程序 ,实际是 下个断点,当打多个断点是,F9会到下一个断点

alt+F9:run to cursor
没用过

常用:
F8,F9,其次Alt+shift+F7,或 F7,shift+F8

批量注释:Ctrl+/

pycharm总是安装不上,更改源仍然无效。只能在cmd命令中安装三方库。
pip install --index-url http://pypi.doubanio.com/simple/ matplotlib --trusted-host pypi.doubanio.com

image.png

你可能感兴趣的:(2020-02-04 python-蒙特卡洛学习)