美文网首页
2020-02-04 python-蒙特卡洛学习

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

作者: 博陵韩少 | 来源:发表于2020-02-04 12:45 被阅读0次

    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-蒙特卡洛学习

          本文链接:https://www.haomeiwen.com/subject/okdrxhtx.html