Matematika#

Zavedení#

Math obsahuje jak vestavěné funkce Pythonu, tak i plný modul math , který je automaticky dostupný ve VEXcode IQ (2. generace). Tyto nástroje vám umožňují provádět vše od základní aritmetiky až po pokročilou trigonometrii, zaokrouhlování a logaritmické operace.

Tyto funkce a konstanty použijte k výpočtu poloh, úhlů, vzdáleností a dalších číselných hodnot pro vašeho robota. Můžete také převádět mezi stupni a radiány, vyhodnocovat výrazy a pracovat se speciálními hodnotami, jako je nekonečno a NaN.

Níže je uveden seznam dostupných matematických funkcí, konstant a utilit:

Vestavěné funkce – Běžné matematické nástroje zahrnuté v Pythonu.

  • abs — Vrátí absolutní hodnotu čísla.

  • round — Zaokrouhlí číslo na zadaný počet desetinných míst.

  • min — Vrátí nejmenší ze vstupních hodnot.

  • max — Vrátí největší ze vstupních hodnot.

  • sum — Sečte všechny hodnoty v iterovatelném objektu.

  • divmod — Vrátí podíl a zbytek jako n-tici.

  • pow — Umocní číslo, volitelně s modulem.

  • int — Převede hodnotu na celé číslo.

  • float — Převede hodnotu na číslo s plovoucí desetinnou čárkou.

Konstanty — Předdefinované hodnoty z modulu math.

  • math.pi — Konstanta π (pí).

  • math.tau — Konstanta tau (2π).

  • math.e — Eulerovo číslo, základ přirozeného logaritmu.

Trigonometrie – Výpočet úhlů a vztahů mezi stranami.

  • math.sin — Sinus úhlu v radiánech.

  • math.cos — Kosinus úhlu v radiánech.

  • math.tan — Tangens úhlu v radiánech.

  • math.atan — Arkustangens hodnoty v radiánech.

  • math.atan2 — Arkustangens osy y/x v radiánech, s ohledem na kvadrant.

  • math.asin — Arkus sinus hodnoty v radiánech.

  • math.acos — Arkuskosinus hodnoty v radiánech.

  • math.degrees — Převede radiány na stupně.

  • math.radians — Převede stupně na radiány.

Zaokrouhlování a absolutní hodnota – Úprava přesnosti nebo směru.

  • math.ceil — Zaokrouhlí nahoru na nejbližší celé číslo.

  • math.floor — Zaokrouhlí dolů na nejbližší celé číslo.

  • math.trunc — Odstraní desetinnou část.

  • math.fabs — Vrátí absolutní hodnotu jako číslo s desetinnou čárkou.

Exponenty a logaritmy – Výpočty mocnin, odmocnin a logaritmů.

  • math.pow — Umocní číslo.

  • math.sqrt — Vrátí druhou odmocninu.

  • math.exp — Vypočítá e umocněné na x.

  • math.log — Přirozený logaritmus (o základu e).

Operace s plovoucí desetinnou čárkou – Kontrola nebo rozklad hodnot s plovoucí desetinnou čárkou.

  • math.modf — Vrátí zlomkovou a celočíselnou část čísla s desetinnou čárkou.

  • math.frexp — Rozloží číslo na mantisu a exponent.

  • math.fmod — Zbytek se znaménkem dělence.

  • math.copysign — Vrátí hodnotu se znaménkem jiné hodnoty.

  • math.ldexp — Vypočítá x * (2 ** exp).

Vestavěné funkce#

Python nabízí několik vestavěných funkcí, které umožňují provádět matematické operace uvnitř projektu.

abs#

abs vrací absolutní hodnotu čísla bez záporného znaménka.

Usage:
abs(x)

Parametr

Popis

x

Celé číslo nebo číslo s plovoucí desetinnou čárkou.

# Get the absolute value of -10
abs_result = abs(-10)
brain.screen.print(abs_result)

# abs_result = 10

round#

round číslo na zadaný počet desetinných míst.

Usage:
round(x, ndigits)

Parametr

Popis

x

Celé číslo nebo číslo s plovoucí desetinnou čárkou.

ndigits

Volitelné. Počet desetinných míst, na které se má zaokrouhlit. Výchozí hodnota je 0.

# Round 5.7 to the nearest integer
round_int_result = round(5.7)
brain.screen.print(round_int_result)

# round_int_result = 6

# Round 3.14159 to 2 decimal places
round_result = round(3.14159, 2)
brain.screen.print(round_result)

# round_result = 3.14

min#

min vrací nejmenší hodnotu z více argumentů nebo iterovatelného objektu.

Usage:
min(arg1, arg2, …) or min(sequence)

Parametr

Popis

arg1, arg2, …

Čísla k porovnání.

sequence

Seznam, n-tice nebo jiná posloupnost obsahující čísla.

# Get the smallest number from 3, 7, and 1
min_result = min(3, 7, 1)
brain.screen.print(min_result)

# min_result = 1

# Get the smallest value from a list
min_list_result = min([10, 4, 25, 1])
brain.screen.print(min_list_result)

# min_list_result = 1

max#

max vrací největší hodnotu z více argumentů nebo iterovatelného objektu.

Usage:
max(arg1, arg2, …) or max(sequence)

Parametr

Popis

arg1, arg2, …

Čísla k porovnání.

sequence

Seznam, n-tice nebo jiná posloupnost obsahující čísla.

# Get the largest number from 3, 7, and 1
max_result = max(3, 7, 1)
brain.screen.print(max_result)

# max_result = 7

# Get the largest value from a list
max_list_result = max([10, 4, 25, 1])
brain.screen.print(max_list_result)

# max_list_result = 25

sum#

Funkce sum sečte všechny hodnoty v iterovatelném objektu s volitelnou počáteční hodnotou.

Usage:
sum(sequence, start)

Parametr

Popis

sequence

Seznam, n-tice nebo jiná posloupnost obsahující čísla.

start

Volitelné. Hodnota, která se má přičíst k součtu. Výchozí hodnota je 0.

# Calculate the sum of a list of numbers
sum_result = sum([1, 2, 3, 4, 5])
brain.screen.print(sum_result)

# sum_result = 15

# Calculate the sum of a list with a starting value of 10
sum_with_start = sum([1, 2, 3], 10)
brain.screen.print(sum_with_start)

# sum_with_start = 16

divmod#

divmod vrací n-tici obsahující podíl a zbytek operace dělení.

Usage:
divmod(a, b)

Parametr

Popis

a

Dividenda.

b

Dělitel.

# Perform integer division and remainder of 10 / 3
divmod_result = divmod(10, 3)
brain.screen.print(divmod_result)

# divmod_result = (3, 1)

pow#

Funkce pow umocní číslo a volitelně provede operaci s modulem.

Usage:
pow(x, y, mod)

Parametr

Popis

x

Základní číslo.

y

Exponent.

mod

Volitelné. Hodnota modulu. Pokud je zadána, vrátí (x ** y) % mod.

# Calculate 2 raised to the power of 3
pow_result = pow(2, 3)
brain.screen.print(pow_result)

# pow_result = 8

int#

int převede číslo nebo řetězec na celé číslo. Podporuje také převod základů při převodu z řetězce.

Usage:
int(x, base)

Parametr

Popis

x

Číslo, řetězec nebo jiný objekt, který má být převeden.

base

Volitelné. Číselný základ, který se má použít pro převod. Výchozí hodnota je 10.

# Convert a float to an integer to get rid of decimals
price = 19.99
price_int = int(price)
brain.screen.print("{} coins".format(price_int))

# Output: 19 coins

# Convert a string into an integer to use in calculations
user_input = "55"
user_number = int(user_input)
brain.screen.print(user_number * 2)

# Output: 110

float#

float převede číslo nebo řetězec na číslo s plovoucí desetinnou čárkou.

Usage:
float(x)

Parametr

Popis

x

Číslo, řetězec nebo jiný objekt, který má být převeden.

# Convert division result to a float
num_apples = 6
num_people = 2
apples_per_person = float(num_apples) / num_people
brain.screen.print(apples_per_person)

# Output: 3.00

# Convert a string into a float to use in calculations
user_input = "23.4"
user_number = float(user_input)
brain.screen.print(user_number * 3)

# Output: 70.20

Matematický modul#

Modul math v MicroPythonu poskytuje další metody pro provádění běžných matematických výpočtů. Mezi tyto metody patří trigonometrické, logaritmické a další numerické operace.

Modul math je ve VEXcode importován standardně.

Constants#

Konstanty jsou předdefinované hodnoty, které zůstávají během projektu neměnné. Lze je použít ve výpočtech bez nutnosti jakékoli definice nebo přiřazení.

pí#

pi udává matematickou konstantu π, poměr obvodu kruhu k jeho průměru.

Usage:
math.pi

# Calculate the area of a circle with radius 5 using pi
circle_area = math.pi * 5 * 5
brain.screen.print(circle_area)

# circle_area = 78.54

tau#

tau dává hodnotu 2π.

Usage:
math.tau

# Calculate the circumference of a circle with radius
circumference = math.tau * 5
brain.screen.print(circumference)

# circumference = 31.42

E#

e udává základ přirozeného logaritmu.

Usage:
math.e

# Calculate e raised to the power of 2
e_power = math.pow(math.e, 2)
brain.screen.print(e_power)

# e_power = 7.39

Trigonometry#

hřích#

sin vypočítá sinus úhlu v radiánech a vrátí číslo s desetinnou čárkou.

Usage:
math.sin(x)

Parametr

Popis

x

Číslo s desetinnou čárkou nebo celé číslo představující úhel v radiánech.

# Calculate the sine of 
# 30 degrees in radians
result = math.sin(math.radians(30))
brain.screen.print(result)

# result = 0.50

cos#

Funkce cos vypočítá kosinus úhlu v radiánech a vrátí číslo s desetinnou čárkou.

Usage:
math.cos(x)

Parametr

Popis

x

Číslo s desetinnou čárkou nebo celé číslo představující úhel v radiánech.

# Calculate the cosine of 
# 60 degrees in radians
result = math.cos(math.radians(60))
brain.screen.print(result)

# result = 0.50

opálení#

Funkce tan vypočítá tangens úhlu v radiánech a vrátí číslo s desetinnou čárkou.

Usage:
math.tan(x)

Parametr

Popis

x

Číslo s desetinnou čárkou nebo celé číslo představující úhel v radiánech.

# Calculate the tangent of 
# 45 degrees in radians
result = math.tan(math.radians(45))
brain.screen.print(result)

# result = 1.00

atan#

Funkce atan vypočítá inverzní tangens (arkustangens) čísla a vrátí číslo s desetinnou čárkou, které představuje úhel v radiánech.

Usage:
math.atan(x)

Parametr

Popis

x

Číslo s plovoucí desetinnou čárkou nebo celé číslo.

# Calculate the arc tangent 
# of 1 in degrees
arc_tan = math.atan(1.0)
result = math.degrees(arc_tan)
brain.screen.print(result)

# result = 45.00

atan2#

atan2 vypočítá hlavní hodnotu inverzního tangensu osy y/x a vrátí číslo s desetinnou čárkou reprezentující úhel v radiánech.

Usage:
math.atan2(y, x)

Parametr

Popis

y

Číslo s desetinnou čárkou nebo celé číslo představující souřadnici y.

x

Číslo s desetinnou čárkou nebo celé číslo představující souřadnici x.

# Calculate the inverse tangent 
# of 1/1 in degrees
atan2 = math.atan2(1.0, 1.0)
result = math.degrees(atan2)
brain.screen.print(result)

# result = 45.00

asin#

Funkce asin vypočítá inverzní sinus (arkus sinus) čísla a vrátí číslo s desetinnou čárkou, které představuje úhel v radiánech.

Usage:
math.asin(x)

Parametr

Popis

x

Číslo s desetinnou čárkou nebo celé číslo mezi -1 a 1.

# Calculate the arc sine 
# of 0.5 in degrees
result = math.degrees(math.asin(0.5))
brain.screen.print(result)

# result = 30.00

ACOS#

acos vypočítá inverzní kosinus (arkuskosinus) čísla a vrátí číslo s desetinnou čárkou představující úhel v radiánech.

Usage:
math.acos(x)

Parametr

Popis

x

Číslo s desetinnou čárkou nebo celé číslo mezi -1 a 1.

# Calculate the arc cosine 
# of 0.5 in degrees
result = math.degrees(math.acos(0.5))
brain.screen.print(result)

# result = 60.00

stupňů#

degrees převede úhel z radiánů na stupně.

Usage:
math.degrees(x)

Parametr

Popis

x

Číslo s desetinnou čárkou nebo celé číslo představující úhel v radiánech.

# Convert pi radians to degrees
degrees_result = math.degrees(math.pi)
brain.screen.print(degrees_result)

# degrees_result = 180.00

radiány#

radians převede úhel ze stupňů na radiány.

Usage:
math.radians(x)

Parametr

Popis

x

Číslo s desetinnou čárkou nebo celé číslo představující úhel ve stupních.

# Convert 180 degrees to radians
radians_result = math.radians(180)
brain.screen.print(radians_result)

# radians_result = 3.14

Rounding & Absolute Values#

strop#

ceil zaokrouhlí číslo nahoru na nejbližší celé číslo.

Usage:
math.ceil(x)

Parametr

Popis

x

Číslo s desetinnou čárkou nebo celé číslo, které má být zaokrouhleno nahoru.

# Round 3.7 up to the nearest integer
ceil_result = math.ceil(3.7)
brain.screen.print(ceil_result)

# ceil_result = 4

patro#

floor zaokrouhlí číslo dolů na nejbližší celé číslo.

Usage:
math.floor(x)

Parametr

Popis

x

Číslo s desetinnou čárkou nebo celé číslo, které se má zaokrouhlit dolů.

# Round 3.7 down to the nearest integer
floor_result = math.floor(3.7)
brain.screen.print(floor_result)

# floor_result = 3

kmen#

trunc odstraní desetinnou část čísla bez zaokrouhlení.

Usage:
math.trunc(x)

Parametr

Popis

x

Číslo s plovoucí …

# Remove the decimal part of 3.7
trunc_result = math.trunc(3.7)
brain.screen.print(trunc_result)

# trunc_result = 3

továrny#

fabs vrací absolutní hodnotu čísla jako desetinné číslo.

Usage:
math.fabs(x)

Parametr

Popis

x

Číslo s plovoucí desetinnou čárkou nebo celé číslo.

# Get the absolute value of -3.7
fabs_result = math.fabs(-3.7)
brain.screen.print(fabs_result)

# fabs_result = 3.70

Exponents & Logarithms#

pow#

Funkce pow umocňuje x na y a vrací číslo s desetinnou čárkou, i když oba vstupy jsou celá čísla.

Usage:
math.pow(x, y)

Parametr

Popis

x

Základ s plovoucí desetinnou čárkou nebo celočíselným číslem.

y

Celočíselný nebo float exponent.

# Calculate 2 raised to the power of 3
power_result = math.pow(2, 3)
brain.screen.print(power_result)

# power_result = 8.00

čtvereční#

Funkce sqrt vypočítá druhou odmocninu z čísla a vrátí číslo s desetinnou čárkou, a to i v případě dokonalých druhých mocnin.

Usage:
math.sqrt(x)

Parametr

Popis

x

Nezáporné číslo s desetinnou čárkou nebo celé číslo.

# Calculate the square root of 16
sqrt_result = math.sqrt(16)
brain.screen.print(sqrt_result)

# sqrt_result = 4.00

exp#

exp vypočítá exponenciál čísla a vrátí číslo s desetinnou čárkou.

Usage:
math.exp(x)

Parametr

Popis

x

Číslo s plovoucí desetinnou čárkou nebo celé číslo.

# Calculate e raised to the power of 1
exp_result = math.exp(1)
brain.screen.print(exp_result)

# exp_result = 2.72

protokol#

Funkce log vypočítá přirozený logaritmus čísla a vrátí hodnotu typu float.

Usage:
math.log(x)

Parametr

Popis

x

Kladné číslo s plovoucí desetinnou čárkou nebo celé číslo.

# Calculate the natural logarithm
# (base e) of 7.389056
log_result = math.log(7.389056)
brain.screen.print(log_result)

# log_result = 2.00

Floating Point Operations#

modf#

modf rozloží číslo na zlomkovou a celočíselnou část a vrátí n-tici (fractional part, integer part), obě jako čísla s desetinnou čárkou.

Usage:
math.modf(x)

Parametr

Popis

x

Číslo s plovoucí desetinnou čárkou nebo celé číslo, které se má rozložit.

# Decompose 3.14159 into fractional and integer parts
fractional_part, integer_part = math.modf(3.14159)
brain.screen.print(fractional_part)
brain.screen.next_row()
brain.screen.print(integer_part)

# fractional_part = 0.14
# integer_part = 3.00

frexp#

Funkce frexp rozloží číslo na mantissu a exponent a vrátí n-tici (mantissa, exponent), kde mantisa je číslo s desetinnou čárkou a exponent je celé číslo.

Usage:
math.frexp(x)

Parametr

Popis

x

Číslo s plovoucí desetinnou čárkou nebo celé číslo, které se má rozložit.

# Decompose 16 into its mantissa and exponent
mantissa, exponent = math.frexp(16)
brain.screen.print(mantissa)
brain.screen.next_row()
brain.screen.print(exponent)

# mantissa = 0.50
# exponent = 5

fmod#

Funkce fmod vrací zbytek po dělení se zachováním znaménka dělence (x).

Usage:
math.fmod(x, y)

Parametr

Popis

x

Dividenda.

y

Dělitel.

# Calculate remainder of 10 / 3
# that preserves the sign of 10
fmod_result = math.fmod(10, 3)
brain.screen.print(fmod_result)

# fmod_result = 1.00

autorský podpis#

copysign vrací x se znaménkem y.

Usage:
math.copysign(x, y)

Parametr

Popis

x

Hodnota, která má být upravena.

y

Hodnota, jejíž znaménko bude zkopírováno.

# Return -10 with the sign of 3 (positive)
copysign_result = math.copysign(-10, 3)
brain.screen.print(copysign_result)

# copysign_result = 10.00

ldexp#

ldexp vypočítá x * (2 ** exp), což je ekvivalentní x * 2exp{code}.

Usage:
math.ldexp(x, exp)

Parametr

Popis

x

Základní hodnota.

exp

Exponent.

# Compute 3 * (2 ** 4)
ldexp_result = math.ldexp(3, 4)
brain.screen.print(ldexp_result)

# ldexp_result = 48.00