Program na Eternity II   zodpovězená otázka

Offtopic, Algoritmy

Slyšeli jste o Eternity II? Kdo tenhle hlavolam složí, vyhraje 2000000 USD. Snaží se to složit lidi na celém světě.

Počet kombinací dílků i s otáčením se dá vyjádřit číslem, které má cca 550 nul. Takže je jasné, že ručně se to složit nedá. člověk to nedokáže, takže to musí dokázat jedině počítač.

Lidi vyvinuli několik agloritmů, které pracují na principu brutalforce. Prostě to skládají, jako lidi, jenom jsou rychlejší. Ale i přesto na to nestačí. Chtělo by to vymyslet ňejaký program pracující na lepším principu, který to fakt zvládne. Co vy na to?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Výše odměny bývá v těchto situacích úměrná obtížnosti toho problému. Ne, že by se mi dva milionky doláčů nehodily, ale řekl bych, že na světě je mnoho lepších programátorů.

A obávám se, že na tohle se moc algoritmů vymyslet nedá, prostě hrubá síla je jediný způsob, který mě napadá. Samozřejmě možností je tolik, že to není v praxi příliš dobře realizovatelné.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Možná bychom se mohli nějak spojit (jako víc programátorů) a zkusit to společně. Taky by to chtělo hodně dobrý hardwere, aby ten program počítal rychle, ta hrubá síla musí být opravdu hrubá. Já jsem zkoušel jeden program napsat ve visual basicu (zatím skládá jen 20 dílků), ale nefunguje mi (někdy to složí a někdy ne), asi mám někde chybu, zkusím ji opravit. Taky by to chtělo programátora programujícího v jazyku, který se na to bude nejvíc hodit. Visual basic asi není nejvhodnější. Myslím, že nejlepší bude C nebo C++.

Někdo to jednou musí složit, tak proč ne my?

Výhru bychom si rozdělili. ;-)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jo, promiňte, ten neregistrovaný nad tímto příspěvkem jsem já. Zapoměl jsem se přihlásit.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V tomto případě je úplně jedno, zda-li se použije VB.NET nebo C++, .NET je téměř stejně rychlý jako C++, pokud jde o výkon při aritmeticko-logických operacích, což je tento případ.

Tuhle hru řeší stovky týmů po celém světě a šance, že napíšete lepší řešítko než týmy z univerzit, které se tím zabývají už roky a mají zkušenosti např. z prvního dílu této hry, je velice malá. Nerad bych vám kazil naděje, ale ono to opravdu není tak jednoduché, jak to vypadá. 20 dílků, tam je možností pár. Ale s počtem dílků roste počet možností exponenciálně. Dnešní počítače zvládnou tak možná desítky dílků, odhadnul bych, že 40 je ještě reálných, ale 50 už ne. Můžete si koupit tisíckrát rychlejší procesor a stejně na výsledek můžete čekat miliony let (místo miliard let).

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Navíc kurz dolaru pořád klesá, než to vyřešíte, tak nebudou 2 miliony USD skoro nic.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Tak nic.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

To je škoda, že se to tu nebude více rozebírat. Když už není motivace ve 2M $ tam si myslím, že je to "dobrý" motivační začátek pro lidi co se chtějí naučit programovat. Seriály co tu jsou hodne pomáhají. Moc za ně děkuji :)

Nemáte někdo nějaký zdrojový kód, kde by člověk mohl načerpat moudra? Pořád bojuji s načtením kostiček ze souboru a jejich otáčením. Ale jak je umístit do pole "na desku" - s tím si pořád lámu hlavu :(

PS:Chtělo by to další díl seriálu Naučte se programátorsky myslet :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Jestli budu mít čas, tak další díl seriálu o algoritmech napíšu tento týden.

Ale stejně, je milion úloh, na kterých se opravdu naučíte programovat, tohle je jen prasácky těžká úloha, o které dohromady nikdo neví, jak ji řešit.

Já bych si být vámi udělal strukturu Kostička, do které bych dal 4 proměnné - barvaNahore, barvaDole, barvaVpravo a barvaVlevo. Pak bych do té struktury přidal funkce otocDoprava a otocDoleva, kde jenom tyto čtyři proměnné správně přeházíte atd.

Pak si uděláte dvourozměrné pole těchto struktur, a nějak si s nimi budete hrát. Můžete si napsat jejich vykreslování, na tom se něco určitě naučíte. Na samotný algoritmus si zkuste udělat malou mřížku (tak 6x6, víc kostiček by už trvalo asi dost dlouho) a můžete si hrát s rekurzí a backtrackingem. Přeji hodně štěstí.

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback