(四)Python入门之100道基础题

·斐波那契数列

要求列出1000以内的斐波那契数列元素

a,b = 0,1
while a <1000:
    print(a,end=',')
    a,b = b,a+b

注:(新手必踩的坑)

     Python极大的简化了代码的书写,使得书写变得便捷,但便捷不代表简单,事实上Python

                      非常!

                      非常!

                      非常难!!!

不信的话,详见下面列举出的

一行解决一道题系列:


一行超人(一题一行系列):

·累加和问题

要求求出1到100的和

count = sum(range(0,101))
print(count)


 ·列表生成式

要求生成一个递增或递减的列表,步长和长度自定义。

print([x*11 for x in range(10)])
print([x*(-1) for x in range(10)])


·反转字符串

要求反转一串字符串

print("ASTER"[::-1])


重要——·蒙特卡罗方法

重点介绍一下该方法的思想,概率论中在极大似然估计这章中有涉及到蒙特卡罗和n重伯努利模型,这两种方法都展示了事件发生的频率和真实事件发生概率之间的关系。

代码可以不会写,主要了解思想。

思想:

        蒙特卡罗在求PI值的时候,萌发出掷点到单位面积内,求无数次后,落到圆内的点数和总点数之间的比值,来近似估计圆的面积,这与那几位抛掷几万次硬币的科学家很像。

from random import random
from math import sqrt
from time import clock
DARTS = 1000
hits = 0.0
clock()
for i in range(1,DARTS+1):
    x,y = random(),random()
    dist = sqrt(x ** 2 + y **2)
    if dist <= 1.0:
        hits = hits + 1
pi = 4 * (hits/DARTS)
print("Pi的值是{}.".format(pi))
print("运行时间是:{:.5f}s".format(clock()))
-----------------------------------------------
from random import random
from math import sqrt
from time import process_time
DARTS = 1000
hits = 0.0
process_time()
for i in range(1,DARTS+1):
    x,y = random(),random()
    dist = sqrt(x ** 2 + y **2)
    if dist <= 1.0:
        hits = hits + 1
pi = 4 * (hits/DARTS)
print("Pi的值是{}.".format(pi))
print("运行时间是:{:.5f}s".format(process_time()))

Python3.8的同学用下面的版本,3.8抛弃了time的使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值