Chamtivý algoritmus pro egyptské zlomky je chamtivý algoritmus , který převádí racionální čísla na egyptské zlomky , přičemž v každém kroku vybírá největší možný alikvot , který lze použít ve zbytkovém zlomku.
Rozklad získaný chamtivým algoritmem pro číslo se nazývá chamtivý egyptský rozklad , Sylvesterův rozklad nebo Fibonacciho-Sylvesterův rozklad čísla .
Mezi několika různými metodami pro konstrukci egyptských zlomků daný Fibonacci v Book of the Abacus byl chamtivý algoritmus, který byl navržen k použití pouze v případě, že jiné metody selhaly [1] . Následně byl chamtivý algoritmus a jeho rozšíření pro aproximaci iracionálních čísel několikrát znovu objeven, nejstarším a nejznámějším případem byl Sylvesterův algoritmus [2] [3] . Metoda, která v každém kroku udává nejbližší aproximaci, pro kterou jsou povoleny záporné zlomky, patří Lambertovi [4] .
Fibonacciho algoritmus provádí rozklad postupným nahrazováním:
(v případě potřeby zjednodušení druhého termínu). Například:
.V tomto rozšíření je jmenovatel prvního alikvotu výsledkem zaokrouhlení nahoru na další (vyšší) celé číslo a zbytek je výsledkem snížení . Dělitel druhého zlomku - , - je výsledkem zaokrouhlení nahoru na další (větší) celé číslo a zbytek je to, co zbyde po odečtení a .
Protože každý krok rozšíření snižuje čitatel zbytku, bude tato metoda dokončena v konečném počtu kroků. Ve srovnání se staroegyptskými metodami rozkladu nebo modernějšími metodami však tato metoda může poskytnout rozklad s poměrně velkými jmenovateli. Například chamtivé rozšíření čísla :
,zatímco jiné metody poskytují mnohem jednodušší rozšíření:
,a pro chamtivý algoritmus poskytuje rozšíření do deseti zlomků, z nichž poslední má 500 číslic ve jmenovateli, přičemž existuje reprezentace [5] :
.Sylvesterova posloupnost může být reprezentována jako tvořená nekonečnou expanzí jednoty pomocí chamtivého algoritmu, kde je v každém kroku zvolen jmenovatel místo . Pokud tuto posloupnost ořízneme členy a vytvoříme odpovídající egyptský zlomek, například pro :
,pak získáme z egyptských zlomků se členy nejbližší aproximaci zdola [6] [7] . Například jakýkoli egyptský zlomek vyžaduje alespoň pět výrazů pro číslo v otevřeném rozsahu . Je popsáno použití takových nejbližších rozšíření pro nižší odhad počtu dělitelů dokonalého čísla [6] , stejně jako v teorii grup [8] .
Libovolný zlomek poskytuje maximální podmínky v chamtivém algoritmu. Jsou zkoumány podmínky, za kterých expanze vyžaduje přesně zlomky [9] [10] , tyto podmínky lze popsat pomocí modulových srovnání:
V obecném případě posloupnost zlomků s minimálním jmenovatelem , která se rozšiřuje o chamtivý algoritmus se členy [11] :
.Existuje metoda pro přibližný výpočet kořenů polynomu založená na greedy algoritmu [12] [13] , který určuje hrabivý rozklad kořene. V každém kroku se vytvoří další polynom, který má zbytek rozšíření jako kořen. Například pro výpočet zištné expanze zlatého řezu jako jednoho ze dvou řešení rovnice provede algoritmus následující kroky.
Pokračujeme-li v tomto procesu aproximace, získáme expanzi zlatého řezu na egyptský zlomek [14] :
.Délka, minimální jmenovatel a maximální jmenovatel zištného rozšíření pro zlomky s malými čitateli a jmenovateli jsou zahrnuty v Encyklopedie celočíselných sekvencí [15] . Navíc chamtivé rozšiřování jakéhokoli iracionálního čísla vede k nekonečné rostoucí posloupnosti celých čísel a OEIS obsahuje rozšíření některých dobře známých konstant.
Je možné definovat chamtivý algoritmus s určitými omezeními ve jmenovateli:
,kde je vybráno ze všech hodnot, které splňují uložená omezení a mají nejmenší možnou hodnotu, při které a takové, které se liší od všech předchozích jmenovatelů. Například Engelův rozklad lze považovat za algoritmus tohoto typu, ve kterém každý přípustný jmenovatel musí být získán vynásobením předchozího nějakým celým číslem. Je však často netriviální zjistit, zda takový algoritmus vždy vede ke konečnému rozkladu. Zejména liché chamtivé rozšíření zlomku je tvořeno chamtivým algoritmem s omezením na liché jmenovatele. Je známo, že pro liché existuje expanze do egyptského zlomku, ve kterém jsou všichni jmenovatelé lichí, ale zda lichý chamtivý algoritmus vždy povede ke konečnému rozšíření, není známo.