Anagram

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Animovaná ukázka anagramu (přesmyčky) anglických slov Listen a Silent (poslouchat/naslouchat, tichý/mlčící) Anagram neboli přesmyčka je slovo či více slov, která vzniknou z původního slova či více slov tak, že se použijí všechna písmena v původním výrazu obsažená a změní se jejich pořadí. Často se přitom nedbá na diakritiku.

Přesmyčky patří mezi oblíbené hlavolamy.

Příklady

anagrams - ars magna (latinsky velké umění) * pekařství - přístavek * reklama - makrela - karamel * pěší toulka - koupaliště * já lord Voldemort - Tom Rojvol Raddle (v anglickém originále: Tom Marvolo Riddle - I Am Lord Voldemort) * plavecký stadion - ladné postavičky * zdravý spánek - zvěrský nápad - prášek navždy * hlavní město Praha - postihlá havranem - přesahovat lhaním - prohlásit neváhám - stíhán pohlavárem * kotel - loket * Clint Eastwood - Old West Action (anglicky „akce starého západu“) * chleba - blecha * Doctor Who - Torchwood (organizace ze jmenovaného seriálu) * Jim Morrison - Mr. Mojo Risin' (v textu písně +moreA. _Woman'>L. A. Woman stejnojmenného alba kapely The Doors) * Elvira Lemon - Elena Rimlov (ze starého detektivního příběhu Smrt v Millet) * Carmilla - Millarca - Mircalla (anagramy jména upírky z gotického románu Carmilla) * Berckentin - Ritenbenck (zastaralé jméno grónské osady Appat).

Metody hledání přesmyček

Vyhledávání přesmyček je zajímavou úlohou pro výpočetní techniku. Předpokladem je kvalitní databáze slov v daném jazyce. +more Základní algoritmus je jednoduchý - postupně se zkouší kombinovat různá slova z databáze (většinou jde o kombinace maximálně tří slov) a porovnává se, jestli je výsledná kombinace přesmyčkou původního výrazu. K porovnávání lze využít např. regulárních výrazů. Tato cesta sice vede k cíli, ale velice pomalu, protože kombinací může být obrovské množství a práce s řetězcovými proměnnými je pomalá. Existuje ale elegantní postup, jak úlohu převést na práci s celočíselnými proměnnými a na jednoduché matematické operace. Tento postup využívá malá prvočísla a jejich vlastnosti. Nejprve se každému znaku abecedy přiřadí jiné malé prvočíslo (např. A = 2, B = 3, C = 5, atd. ). Pak se nahradí znaky v původním řetězci za příslušná prvočísla a udělá se jejich součin (např. ABBA = 2*3*3*2 = 36). Slova z databáze se převedou na čísla stejným postupem. Číslo příslušné víceslovné kombinaci dostaneme vynásobením čísel odpovídajících daným slovům. Výrazy, které jsou navzájem přesmyčkou mají takovýto součin stejný (např. BABA = 3*2*3*2 = 36 nebo BA BA = (3*2)*(3*2) = 36). Rozkladem čísla 36 na prvočinitele nahlédneme, že ten je tvořen právě prvočísly 2, 2, 3 a 3. Celý problém porovnávání se pak převede na jednoduché matematické operace - násobení dělení a také modulo.

V praxi je však problém o dost složitější. Při delších výrazech se takovýmto násobením velice rychle narazí na horní limit velikosti celočíselné proměnné - ten se může lišit v různých programovacích jazycích, ale také může záviset na použitém operačním systému (32 bit / 64 bit). +more Vhodnými programátorskými postupy lze ale tento limit obejít a také omezit počet kombinací výstupních slov, které se porovnávají se vstupním řetězcem.

Související články

Lingvistika * Ambigram * Pangram * Hádanka * Rébus

Externí odkazy

[url=https://anagrammer.org/]Vyhledávač přesmyček[/url] * [url=https://www.zaedno.org/hry/316-hledac-presmycek-a-slov]Vyhledávač přesmyček s diakritikou a v různých jazycích[/url]

Kategorie:Hlavolamy Kategorie:Lingvistické hry

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top