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

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

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é:

mocnina2

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 ;)

pascal realita odhad

pascal realita odhad log2

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 ^^^


Author: AarNoma

The first Slovak cyborg 1 system

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