Majme situáciu: Vypočítajte [sqrt(36)+sqrt(64)]/sqrt(100)=?
Je teda možné použiť Pascalov trojuholník na približný výpočet mocnín? Vidím to takto: https://hrubos.tech/blogy/content/images/20260628234913-pascal_algo_cca_result.jpg
A zrýchlime takto algoritmus výpočtu exponenciál na počítačoch? Ukážem, prečo je to možné:

Popis postupu na obrázku:
Úsečka (a + 1): Na vodorovnú priamku nanesieme kružidlom dĺžku (a) (od bodu A do B) a hneď za ňu pridáme jednotkovú dĺžku (1) (od B do C).
Stred S a kružnica: Pomocou kružidla nájdeme stred (S) celej úsečky (AC) a opíšeme nad ňou modrú Tálesovu polkružnicu.
Kolmica: V bode B (ktorý delí dĺžku (a) od (1)) vztýčime kolmicu smerom nahor.
Hľadaná odmocnina: Červená úsečka od bodu B po priesečník s kružnicou je presná geometrická hodnota (\sqrt{a}). Teraz stačí zapichnúť kružidlo do bodu B, namerať túto červenú výšku a preniesť ju, kam potrebujete.
Za pomoc s Talesovou kružnicou ďakujem google Gemmini ;)


Teda uvažujme, že počítač má zlomiť algoritmom pr Problém obchodného cestujúceho, ktorý sa ráta v exponenciálnom priestore. Dá sa mu pomôcť a algo zrýchliť??? Viďte pokiaľ asi ^^^
using Pkg
Pkg.add("Plots")
using Plots
# -------------------------
# BINOMICKÝ KOEFICIENT
# -------------------------
function binom(n, k)
k = min(k, n - k)
r = 1
for i in 1:k
r = div(r * (n - i + 1), i)
end
return r
end
# -------------------------
# DATASET
# -------------------------
x_real = Float64[] # reálny výsledok
y_eval = Float64[] # odhad (evals)
z_base = Float64[] # max(base)
for a in 2:36, b in 2:77, c in 2:111
d = gcd(gcd(a, b), c)
v = d
# odhad
evals = 1 + v / 10
# reálny model
real = (sqrt(a) + sqrt(b)) / sqrt(c)
real=log2(real)
# base = maximum na riadku (d+1)
n = d + 1
base = maximum(binom(n, k) for k in 0:n)
if real>=1
push!(x_real, real)
push!(y_eval, evals)
push!(z_base, base)
end
end
# -------------------------
# 3D GRAF
# -------------------------
scatter(x_real, y_eval,z_base ,
markersize=2,
label="Pascal geometrická dynamika")
xlabel!("realita log2(x)>=1")
ylabel!("odhad (evals)")
zlabel!("max(base)")
title!("Realita vs Odhad sú násobkami")
display(current())
readline()
Za pomoc s kódom ďakujem podľa mojich príkazov Chat GPT ^^^

Comments “Je možné použiť Pascalov trojuholník na približný výpočet odmocnín rôznych čísiel?”