mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-30 16:31:08 +00:00
ded5deabe9
* Hexagonal number sequence A hexagonal number sequence is a sequence of figurate numbers where the nth hexagonal number hₙ is the number of distinct dots in a pattern of dots consisting of the outlines of regular hexagons with sides up to n dots, when the hexagons are overlaid so that they share one vertex. This program returns the hexagonal number sequence of n length. * Update hexagonalnumbers.py * Update hexagonalnumbers.py * Update hexagonalnumbers.py * Update hexagonalnumbers.py * Update and rename hexagonalnumbers.py to hexagonal_numbers.py * Length must be a positive integer * Create dodecahedron.py * Update dodecahedron.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update dodecahedron.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update dodecahedron.py * Update dodecahedron.py * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Update dodecahedron.py * Update dodecahedron.py * Apply suggestions from code review Co-authored-by: Paul <56065602+ZeroDayOwl@users.noreply.github.com> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * Apply suggestions from code review * Update dodecahedron.py Co-authored-by: Christian Clauss <cclauss@me.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: Paul <56065602+ZeroDayOwl@users.noreply.github.com>
74 lines
2.1 KiB
Python
74 lines
2.1 KiB
Python
# dodecahedron.py
|
|
|
|
"""
|
|
A regular dodecahedron is a three-dimensional figure made up of
|
|
12 pentagon faces having the same equal size.
|
|
"""
|
|
|
|
|
|
def dodecahedron_surface_area(edge: float) -> float:
|
|
"""
|
|
Calculates the surface area of a regular dodecahedron
|
|
a = 3 * ((25 + 10 * (5** (1 / 2))) ** (1 / 2 )) * (e**2)
|
|
where:
|
|
a --> is the area of the dodecahedron
|
|
e --> is the length of the edge
|
|
reference-->"Dodecahedron" Study.com
|
|
<https://study.com/academy/lesson/dodecahedron-volume-surface-area-formulas.html>
|
|
|
|
:param edge: length of the edge of the dodecahedron
|
|
:type edge: float
|
|
:return: the surface area of the dodecahedron as a float
|
|
|
|
|
|
Tests:
|
|
>>> dodecahedron_surface_area(5)
|
|
516.1432201766901
|
|
>>> dodecahedron_surface_area(10)
|
|
2064.5728807067603
|
|
>>> dodecahedron_surface_area(-1)
|
|
Traceback (most recent call last):
|
|
...
|
|
ValueError: Length must be a positive.
|
|
"""
|
|
|
|
if edge <= 0 or not isinstance(edge, int):
|
|
raise ValueError("Length must be a positive.")
|
|
return 3 * ((25 + 10 * (5 ** (1 / 2))) ** (1 / 2)) * (edge**2)
|
|
|
|
|
|
def dodecahedron_volume(edge: float) -> float:
|
|
"""
|
|
Calculates the volume of a regular dodecahedron
|
|
v = ((15 + (7 * (5** (1 / 2)))) / 4) * (e**3)
|
|
where:
|
|
v --> is the volume of the dodecahedron
|
|
e --> is the length of the edge
|
|
reference-->"Dodecahedron" Study.com
|
|
<https://study.com/academy/lesson/dodecahedron-volume-surface-area-formulas.html>
|
|
|
|
:param edge: length of the edge of the dodecahedron
|
|
:type edge: float
|
|
:return: the volume of the dodecahedron as a float
|
|
|
|
Tests:
|
|
>>> dodecahedron_volume(5)
|
|
957.8898700780791
|
|
>>> dodecahedron_volume(10)
|
|
7663.118960624633
|
|
>>> dodecahedron_volume(-1)
|
|
Traceback (most recent call last):
|
|
...
|
|
ValueError: Length must be a positive.
|
|
"""
|
|
|
|
if edge <= 0 or not isinstance(edge, int):
|
|
raise ValueError("Length must be a positive.")
|
|
return ((15 + (7 * (5 ** (1 / 2)))) / 4) * (edge**3)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
import doctest
|
|
|
|
doctest.testmod()
|