"""
Find the area of various geometric shapes
Wikipedia reference: https://en.wikipedia.org/wiki/Area
"""
from math import pi, sqrt, tan
def surface_area_cube(side_length: float) -> float:
"""
Calculate the Surface Area of a Cube.
>>> surface_area_cube(1)
6
>>> surface_area_cube(1.6)
15.360000000000003
>>> surface_area_cube(0)
0
>>> surface_area_cube(3)
54
>>> surface_area_cube(-1)
Traceback (most recent call last):
...
ValueError: surface_area_cube() only accepts non-negative values
"""
if side_length < 0:
raise ValueError("surface_area_cube() only accepts non-negative values")
return 6 * side_length**2
def surface_area_cuboid(length: float, breadth: float, height: float) -> float:
"""
Calculate the Surface Area of a Cuboid.
>>> surface_area_cuboid(1, 2, 3)
22
>>> surface_area_cuboid(0, 0, 0)
0
>>> surface_area_cuboid(1.6, 2.6, 3.6)
38.56
>>> surface_area_cuboid(-1, 2, 3)
Traceback (most recent call last):
...
ValueError: surface_area_cuboid() only accepts non-negative values
>>> surface_area_cuboid(1, -2, 3)
Traceback (most recent call last):
...
ValueError: surface_area_cuboid() only accepts non-negative values
>>> surface_area_cuboid(1, 2, -3)
Traceback (most recent call last):
...
ValueError: surface_area_cuboid() only accepts non-negative values
"""
if length < 0 or breadth < 0 or height < 0:
raise ValueError("surface_area_cuboid() only accepts non-negative values")
return 2 * ((length * breadth) + (breadth * height) + (length * height))
def surface_area_sphere(radius: float) -> float:
"""
Calculate the Surface Area of a Sphere.
Wikipedia reference: https://en.wikipedia.org/wiki/Sphere
Formula: 4 * pi * r^2
>>> surface_area_sphere(5)
314.1592653589793
>>> surface_area_sphere(1)
12.566370614359172
>>> surface_area_sphere(1.6)
32.169908772759484
>>> surface_area_sphere(0)
0.0
>>> surface_area_sphere(-1)
Traceback (most recent call last):
...
ValueError: surface_area_sphere() only accepts non-negative values
"""
if radius < 0:
raise ValueError("surface_area_sphere() only accepts non-negative values")
return 4 * pi * radius**2
def surface_area_hemisphere(radius: float) -> float:
"""
Calculate the Surface Area of a Hemisphere.
Formula: 3 * pi * r^2
>>> surface_area_hemisphere(5)
235.61944901923448
>>> surface_area_hemisphere(1)
9.42477796076938
>>> surface_area_hemisphere(0)
0.0
>>> surface_area_hemisphere(1.1)
11.40398133253095
>>> surface_area_hemisphere(-1)
Traceback (most recent call last):
...
ValueError: surface_area_hemisphere() only accepts non-negative values
"""
if radius < 0:
raise ValueError("surface_area_hemisphere() only accepts non-negative values")
return 3 * pi * radius**2
def surface_area_cone(radius: float, height: float) -> float:
"""
Calculate the Surface Area of a Cone.
Wikipedia reference: https://en.wikipedia.org/wiki/Cone
Formula: pi * r * (r + (h ** 2 + r ** 2) ** 0.5)
>>> surface_area_cone(10, 24)
1130.9733552923256
>>> surface_area_cone(6, 8)
301.59289474462014
>>> surface_area_cone(1.6, 2.6)
23.387862992395807
>>> surface_area_cone(0, 0)
0.0
>>> surface_area_cone(-1, -2)
Traceback (most recent call last):
...
ValueError: surface_area_cone() only accepts non-negative values
>>> surface_area_cone(1, -2)
Traceback (most recent call last):
...
ValueError: surface_area_cone() only accepts non-negative values
>>> surface_area_cone(-1, 2)
Traceback (most recent call last):
...
ValueError: surface_area_cone() only accepts non-negative values
"""
if radius < 0 or height < 0:
raise ValueError("surface_area_cone() only accepts non-negative values")
return pi * radius * (radius + (height**2 + radius**2) ** 0.5)
def surface_area_conical_frustum(
radius_1: float, radius_2: float, height: float
) -> float:
"""
Calculate the Surface Area of a Conical Frustum.
>>> surface_area_conical_frustum(1, 2, 3)
45.511728065337266
>>> surface_area_conical_frustum(4, 5, 6)
300.7913575056268
>>> surface_area_conical_frustum(0, 0, 0)
0.0
>>> surface_area_conical_frustum(1.6, 2.6, 3.6)
78.57907060751548
>>> surface_area_conical_frustum(-1, 2, 3)
Traceback (most recent call last):
...
ValueError: surface_area_conical_frustum() only accepts non-negative values
>>> surface_area_conical_frustum(1, -2, 3)
Traceback (most recent call last):
...
ValueError: surface_area_conical_frustum() only accepts non-negative values
>>> surface_area_conical_frustum(1, 2, -3)
Traceback (most recent call last):
...
ValueError: surface_area_conical_frustum() only accepts non-negative values
"""
if radius_1 < 0 or radius_2 < 0 or height < 0:
raise ValueError(
"surface_area_conical_frustum() only accepts non-negative values"
)
slant_height = (height**2 + (radius_1 - radius_2) ** 2) ** 0.5
return pi * ((slant_height * (radius_1 + radius_2)) + radius_1**2 + radius_2**2)
def surface_area_cylinder(radius: float, height: float) -> float:
"""
Calculate the Surface Area of a Cylinder.
Wikipedia reference: https://en.wikipedia.org/wiki/Cylinder
Formula: 2 * pi * r * (h + r)
>>> surface_area_cylinder(7, 10)
747.6990515543707
>>> surface_area_cylinder(1.6, 2.6)
42.22300526424682
>>> surface_area_cylinder(0, 0)
0.0
>>> surface_area_cylinder(6, 8)
527.7875658030853
>>> surface_area_cylinder(-1, -2)
Traceback (most recent call last):
...
ValueError: surface_area_cylinder() only accepts non-negative values
>>> surface_area_cylinder(1, -2)
Traceback (most recent call last):
...
ValueError: surface_area_cylinder() only accepts non-negative values
>>> surface_area_cylinder(-1, 2)
Traceback (most recent call last):
...
ValueError: surface_area_cylinder() only accepts non-negative values
"""
if radius < 0 or height < 0:
raise ValueError("surface_area_cylinder() only accepts non-negative values")
return 2 * pi * radius * (height + radius)
def surface_area_torus(torus_radius: float, tube_radius: float) -> float:
"""Calculate the Area of a Torus.
Wikipedia reference: https://en.wikipedia.org/wiki/Torus
:return 4pi^2 * torus_radius * tube_radius
>>> surface_area_torus(1, 1)
39.47841760435743
>>> surface_area_torus(4, 3)
473.7410112522892
>>> surface_area_torus(3, 4)
Traceback (most recent call last):
...
ValueError: surface_area_torus() does not support spindle or self intersecting tori
>>> surface_area_torus(1.6, 1.6)
101.06474906715503
>>> surface_area_torus(0, 0)
0.0
>>> surface_area_torus(-1, 1)
Traceback (most recent call last):
...
ValueError: surface_area_torus() only accepts non-negative values
>>> surface_area_torus(1, -1)
Traceback (most recent call last):
...
ValueError: surface_area_torus() only accepts non-negative values
"""
if torus_radius < 0 or tube_radius < 0:
raise ValueError("surface_area_torus() only accepts non-negative values")
if torus_radius < tube_radius:
raise ValueError(
"surface_area_torus() does not support spindle or self intersecting tori"
)
return 4 * pow(pi, 2) * torus_radius * tube_radius
def area_rec
没有合适的资源?快使用搜索试试~ 我知道了~
python 实现 数学中经典问题 课程设计 代码
共159个文件
py:158个
png:1个
需积分: 0 2 下载量 170 浏览量
2023-05-19
03:27:17
上传
评论
收藏 171KB ZIP 举报
温馨提示
3N加1问题,绝对值,加法,无算术加法,约数和,分配数,弧长,面积,曲线下的面积,阿姆斯特朗数,自守数,平均绝对偏差,平均值,中位数,众数,贝利·博尔温·普鲁夫,基本数学,二进制指数模运算,二进制指数运算,二进制指数运算2,二进制指数运算3,二项式系数,二项分布,二分法,卡迈克尔数,卡塔兰数,上取整,检查多边形,楚德诺夫斯基算法,考拉兹序列,组合,十进制分离,十进制转分数,十二面体,双阶乘迭代,双阶乘递归,熵,欧几里得距离,欧几里得最大公约数,欧拉方法,改进欧拉方法,欧拉函数,扩展欧几里得算法,阶乘,因数,费马小定理,斐波那契数列,查找最大值,递归查找最大值,查找最小值,递归查找最小值,下取整,伽马函数,递归伽马函数,高斯函数,高斯误差线性单元,N个数的最大公约数,最大公约数,贪婪找零,汉明数,Hardy-Ramanujan算法,六边形数,辛普森近似法求积分,判断IPv4地址是否有效,判断是否为平方数,Jaccard相似度,喬格勒序列,卡德恩算法,Karatsuba算法,克里希纳穆蒂数,第K个字典序排列,非常大数的最大值,最大子数组和,最小公倍数,线段长度,Liouville函数等
资源推荐
资源详情
资源评论
收起资源包目录
python 实现 数学中经典问题 课程设计 代码
(159个子文件)
gaussian.png 52KB
area.py 19KB
volume.py 16KB
primelib.py 14KB
radix2_fft.py 6KB
single_indeterminate_operations.py 6KB
fibonacci.py 6KB
pollard_rho.py 5KB
entropy.py 5KB
points_are_collinear_3d.py 5KB
monte_carlo.py 4KB
zellers_congruence.py 4KB
manhattan_distance.py 4KB
integration_by_simpson_approx.py 4KB
maclaurin_series.py 4KB
bailey_borwein_plouffe.py 4KB
gcd_of_n_numbers.py 3KB
prime_numbers.py 3KB
greedy_coin_change.py 3KB
armstrong_numbers.py 3KB
pi_generator.py 3KB
basic_maths.py 3KB
3n_plus_1.py 3KB
harmonic.py 3KB
least_common_multiple.py 3KB
jaccard_similarity.py 2KB
matrix_exponentiation.py 2KB
triplet_sum.py 2KB
geometric_series.py 2KB
geometric.py 2KB
arithmetic.py 2KB
persistence.py 2KB
prime_check.py 2KB
qr_decomposition.py 2KB
gamma_recursive.py 2KB
dodecahedron.py 2KB
extended_euclidean_algorithm.py 2KB
chudnovsky_algorithm.py 2KB
pi_monte_carlo_estimation.py 2KB
greatest_common_divisor.py 2KB
weird_number.py 2KB
proth_number.py 2KB
kadanes.py 2KB
euclidean_distance.py 2KB
abs.py 2KB
number_of_digits.py 2KB
nevilles_method.py 2KB
lucas_series.py 2KB
factorial.py 2KB
juggler_sequence.py 2KB
newton_raphson.py 2KB
perfect_square.py 2KB
find_min_recursion.py 2KB
find_max_recursion.py 2KB
sum_of_digits.py 2KB
hamming_numbers.py 2KB
allocation_number.py 2KB
numerical_integration.py 2KB
sieve_of_eratosthenes.py 2KB
area_under_curve.py 2KB
line_length.py 2KB
polynomial_evaluation.py 2KB
sigmoid_linear_unit.py 2KB
decimal_to_fraction.py 2KB
gaussian.py 2KB
automorphic_number.py 2KB
binomial_distribution.py 2KB
gaussian_error_linear_unit.py 1KB
two_pointer.py 1KB
combinations.py 1KB
softmax.py 1KB
euler_modified.py 1KB
bisection.py 1KB
p_series.py 1KB
aliquot_sum.py 1KB
ugly_numbers.py 1KB
sin.py 1KB
max_sum_sliding_window.py 1KB
is_ip_v4_address_valid.py 1KB
check_polygon.py 1KB
liouville_lambda.py 1KB
hexagonal_numbers.py 1KB
hexagonal_number.py 1KB
miller_rabin.py 1KB
pronic_number.py 1KB
collatz_sequence.py 1KB
square_root.py 1KB
euclidean_gcd.py 1KB
binary_exponentiation_2.py 1KB
monte_carlo_dice.py 1KB
harmonic_series.py 1KB
gamma.py 1KB
binary_exponentiation_3.py 1KB
decimal_isolate.py 1KB
euler_method.py 1KB
eulers_totient.py 1KB
prime_sieve_eratosthenes.py 1KB
catalan_number.py 1KB
tanh.py 1KB
carmichael_number.py 1KB
共 159 条
- 1
- 2
资源评论
Nosetime
- 粉丝: 0
- 资源: 43
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功