Doplňování znamének mezi čísla
Mám tam doplnit takové znaménka, tak aby vyšlo číslo 2006. Víto někdo?
1 2 3 4 5 6 7 8 9 = 2006
1 2 3 4 5 6 7 8 9 = 2006
Odpovědi
Diskuze
záleží zda používat i znaménka: - a /
???
Je jasné, že 9+8 = 17 a 2*1 = 2, teď už zbývalo jen podniknout něco s čísly 7, 6, 5, 4, 3 tak, aby dala 59, což už bylo jednoduché. A výsledek?
1 * 2 * (3 * 4 + 5 + 6*7) * (8 + 9) = 2006
Zkoušel jsem to z hecu hrubou silou; a bez závorek, jen se znaménky +-*/, to opravdu nemá řešení. Ani když se "nic" mezi číslicemi chápe jako víceciferné číslo (pouhých 390625 možností).
Otázka je, zda je zadání dobře formulováno, závorce bych asi neříkal "znaménko" :-(
PS: také testováno hrubou silou, akorát jsem nepoužíval: - a /
Na výsledný text se pak v každém cyklu poštval VBScript parser, který to vyhodnotil jako výraz a zkusilo se, jestli výsledek je "2006".
Na mém středně výkonném notebooku kolem 1 s času (na jednom jádře, nedělal jsem to na více vláken :-).
Jakmile by ale přibyly i závorky, velmi by se to zkomplikovalo syntakticky i časově, to už jsem nepokoušel :-)
123+45*6*7-8+9 jediný výsledek bez závorek
1234+5*(67+89)
123+45*6*7-(8-9)
1+(234+56)*7-8-9
1+(2+345)*6-78+9
1-2+(34-5)*67+8*9
1-2+(3+45)*6*7+8-9
1-2+3+4*(5-6+7*8*9)
1-2*3+(4*5+6)*78-9
1-2*3-(4-5*6)*78-9
1-2*3*(4-5-6*7*8)-9
(1*2+3+45*6)*7+89
a jako bonus se našly i dva, ve kterých je i to dělení:
1+(2/3+4*56+7-8)*9
(1/2+34)*56-7+89
Ovšem když si představím, co všechno tam museli seskládat a přeskládat, aby to dali dohromady, tak asi smekám taky... Jak tam tak hopsají, každý hopsne asi 2.5 miliardkrát za sekundu. A trvalo jim to asi 3 minuty.
A stejně tam asi není všechno, ty závorky fungují trochu "divně", ten program byl opravdu jen tak narychlo...