第四周尾巴

计算圆周率:
①由公式计算
在这里插入图片描述
蒙特卡罗方法:是一个撒点方法,类似于概率

圆周率本身就是圆形的面积除以外切正方形的面积(如下图所示)。求解圆周率可以采用蒙特卡罗方法,在一个1/4正方形中撒点,根据在圆内点的数量占总撒点数的比例计算圆周率值。
在这里插入图片描述

from random import random
from time import perf_counter
DARTS = 1000*1000 #总撒点数量
hits = 0.0 # 目前在圆内部点的数量
strat = perf_counter()
# 模拟每次撒的点,判断是否在圆内
for i in range(1,DARTS+1): 
    x, y = random(),random()
    dist = pow(x ** 2 + y ** 2, 0.5)
    if dist <=1.0:
        hits = hits + 1
pi = 4 * (hits/DARTS) # 注意要乘上4,因为概率是可以相加的
print("圆周率是:{}".format(pi))
print("运行时间:{:.5f}s".format(perf_counter()-strat))

举一反三:

  • 理解方法思维:
    • 数学思维—精确的表达式
    • 计算机思维——抽象过程,用计算机自动化求解
  • time.perf_counter关注程序的运行时间提高效率

课后习题:请以123作为随机数种子,获得用户输入的撒点数量,编写程序输出圆周率的值,保留小数点后6位。

import random as r
dots = eval(input())
in_circle = 0
# 注意种子如果放在循环体内部,程序的输出结果不正确且相同。
# (在每个for循环中,产生的初始随机数都一样,则对于每个点,x,y都是相同的)
r.seed(123)  
for i in range(1,dots+1):
    x,y = r.random(),r.random()
    dis = x ** 2 + y ** 2
    if dis <= 1:
        in_circle += 1  #是+=
pi = 4 * (in_circle/dots)
print("{:.6f}".format(pi))

"水仙花数"是指一个三位整数,其各位数字的3次方和等于该数本身。‪‬‪‬‪‬‪‬‪‬‮‬‫‬‫‬‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬

s = []
# 因为是三位数,最高位不能为0
for a in range(1,10,1):
    for b in range(0,10,1):
        for c in range(0,10,1):
            three = a**3+b**3+c**3
            abc=a*100+b*10+c
            if int(three) == int(abc):
                s.append(abc)  # 注意,对于列表,用s=s.append(),因为append返回的是一个空值None
S = str(s)[1:-1]
print(S)

参考答案

s = ""
for i in range(100, 1000):
    t = str(i)
    if pow(eval(t[0]),3) + pow(eval(t[1]),3) + pow(eval(t[2]),3) == i :
        s += "{},".format(i)
print(s[:-1])
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现对话框小尾巴的关键是使用 CSS 的 `::before` 和 `::after` 伪元素来画出三角形。以下是一个简单的示例代码: HTML 代码: ```html <div class="dialogue"> <div class="bubble">这是一条对话</div> </div> ``` CSS 代码: ```css .dialogue { position: relative; } .bubble { position: relative; padding: 10px; background-color: #ffffff; border-radius: 5px; box-shadow: 0 0 5px #888888; font-size: 16px; color: #333333; } .bubble::before { content: ""; position: absolute; bottom: -10px; left: 50%; border: 10px solid transparent; border-top-color: #ffffff; transform: translateX(-50%); } .bubble::after { content: ""; position: absolute; bottom: -8px; left: 50%; border: 10px solid transparent; border-top-color: #888888; transform: translateX(-50%); } ``` 解释一下上述代码: - `.dialogue` 元素用来定位对话框和三角形。 - `.bubble` 元素是对话框的内容。注意,它的 `position` 属性必须是 `relative`,因为三角形是相对于它进行定位的。 - `.bubble::before` 伪元素用来画出白色的三角形。`border` 属性用来画出三角形,`border-top-color` 属性用来设置上边的边框颜色为白色。 - `.bubble::after` 伪元素用来画出阴影效果。同样使用 `border` 属性画出三角形,但是 `border-top-color` 属性设置为灰色,形成阴影效果。 这样就实现了一个简单的对话框小尾巴效果。你可以根据需要调整三角形的大小和位置,以及对话框的样式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值