Blisko C
Pora na premierę (po prapremierze) jednego z zadań z marcowego „Świata Nauki” (oczywiście z działu „Umysł giętki”).
Zaczynamy od pararówności:
123456789=100±R
Zadanie polega na przekształceniu tego kuriozum w poprawną równość w dwóch „przenikających się” etapach:
a) rozsuwamy ciąg cyfr po lewej stronie w czterech miejscach w wyniku czego zmienia się on w pięć liczb całkowitych;
b) między tymi pięcioma liczbami umieszczamy cztery różne znaki podstawowych działań arytmetycznych oraz ewentualnie nawiasy.
Efektem powinno być wyrażenie dające wynik najbliższy stu, czyli R w pararówności po jej przemianie powinno być jak najmniejsze.
Są dwie konkurencje:
I) R jest liczbą całkowitą;
II) R jest liczbą wymierną.
Gwoli jasności dwa przykłady wyników w obu konkurencjach – dalekie od rekordowych:
I) 12×3+(456–78):9=100–22
II) 12×34:5-67+89=100+3,6
Wyniki gorsze od najlepszych, jakie znam, będę uwalniał od razu.
Komentarze z prawidłowym rozwiązaniem ujawniane są wieczorem w przeddzień kolejnego wpisu (z błędnym zwykle od razu). Wpisy pojawiają się co 7 dni.
Komentarze
Wsparte programem, jak to zwykle u mnie 🙂
I) (1234 – (5 * 67 + 8)) / 9 = 99
Mogą być chyba dwie pary nawiasów?
II) 123 – 4 * (5 + 67 / 89) = 8899/89 = 99,988774…
(123-(4*(5+(67/89)))) -> daje resztę 0.0112359550561798
((1234-((5*67)+8))/9) -> daje resztę 1
W konkurencji II:
123-(4*(5+(67/89))) = 99,98876404
(1+(2*3456))/(78-9) = 100,1884058
Konkurencja I: R=1:
(1234-((5*67)+8))/9=99
wymiernie
123-(4*(5+67/89))=99.988764 błąd 0.011236
całkowicie
(123+45)/6*7-89=107 błąd 7
Nie chce być bliżej.
Pierwszy strzał
(123+45)/6*7-89=107
(1*234-5+678)/9=100,(7)
Dodatek
(987-654)/3+2*1=113
(9+8)/76*543-21=100,4605
Drugie podejście
123 – 4 * (5 + (67 / 89)) ≈ 99.98876
Nad częścią całkowitą pracuję.
W obu konkurencjach mamy dwóch zdecydowanych liderów, którzy oderwali się od peletonu.
Dla urozmajcenia podaję też zapis w notacji polskiej co bardzo upraszcza algorytm.
Konkurencja I) R jest liczbą całkowitą
1 miejsce:
[1234 – (5 * 67 + 8)] / 9 = 99
[1234, 5, 67, ‚*’, 8, ‚+’, ‚-‚, 9, ‚/’]
R = 1.0
2 miejsce:
(123 + 45) / 6 * 7 – 89 = 107
[123, 45, ‚+’, 6, ‚/’, 7, ‚*’, 89, ‚-‚]
R = 7.0
Konkurencja II) R jest liczbą wymierną
1 miejsce:
123 – 4* (5 + 67 / 89) = 99.98876404494382
[123, 4, 5, 67, 89, ‚/’, ‚+’, ‚*’, ‚-‚]
R = 0.011235955056179137
2 miejsce:
(1 + 2 * 3456) / (78 – 9) = 100.18840579710145
[1, 2, 3456, ‚*’, ‚+’, 78, 9, ‚-‚, ‚/’]
R = 0.18840579710145278
Nie wyobrażam sobie znajdowania tych rozwiązań na piechotę. No i pewności, że nie ma czegoś lepszego. Komputer sprawdził wszystko i wyszło mi tak:
123 – 4 * (5 + 67/89) = 99,988764… = 100 – 0,011235…
(1234 – (5 * 67 + 8)) / 9 = 99
Jest tam jeszcze trochę rozwiązań nieco gorszych. Gdyby ktoś był ciekaw, to dopiszę.
Algorytm, którego używałem (a mam nadzieję, że nie ma w nim błędu) może posłużyć do szukania rozwiązań dla innych ciągów cyfrowych lub dla innych wartości oczekiwanych jako wynik końcowy. Wszystkich kombinacji jest w nim 40320 = 24 * 24 * 70.
Dla ciągu 987654321 wartości najbliższe 100:
9 * 87 – (654 + 32) / 1 = 97
98 – 7 / 6543 + 2 * 1 = 99,99893… = 100 – 0,00106…