Znajdź rozwiązania - pomoc

Problem

Masz dane liczby całkowite. Dla ułatwienia niech będą jednocyfrowe i takie same. Powiedzmy { 5, 5, 5, 5, 5 }
Masz też drugi podobny zbiór liczb. Dajmy na to { 6, 6 }
Zestaw je w równanie:
5 5 5 5 5 = 6 6
Żeby równianie było prawdziwe możesz łączyć cyfry ze sobą i wstawiać między tak powstałe liczby znaki +, -, *, /

Zadanie polega na tym, żeby znaleźć jak najwięcej równań. Na przykład:
55 / 5 - 5 - 5 = 6 / 6
5 / 5 + 55 / 5 = 6 + 6
5 * 5 + 55 / 5 = 6 * 6 itd...

Dodatkowe zasady:

  • Zachowujesz priorytet działań
  • Wynik musi być liczbą całkowitą
  • W przypadku sekwencji mnożenia/dzielenia wynik cząstkowy operacji wykonywanej od lewej strony musi być całkowitoliczbowy
    • 2 * 4 / 8 = 1, jest poprawne
    • 2 / 4 * 8 = 4, NIE jest poprawne, bo 2/4 nie daje wyniku całkowitoliczbowego

A co jeśli masz zły dzień?

Albo masz już rozwiązania, ale chcesz sprawdzić, czy znalazłaś(eś) wszystkie?
Użyj tej aplikacji
Możesz podawać różne liczby >0. Liczby mogą mieć więcej cyfr niż jedną. Liczby oddzielaj spacją. Z lewej strony równania podaj więcej niż z prawej. A aplikacja pomoże.

Zastrzeżenia

Aplikacja jest robiona 'na szybko' i może zawierać błędy szczególnie UI. Chodziło głównie o pokazanie liczydła

Liczydło

Obliczenia są wykonywane w krokach:

  • Tworzone są wszystkie możliwe zestawy dla działań z prawej i lewej strony znaku =
  • Eliminowane są działania nie spełniające założenia, że wyniki fragmentaryczne muszą być liczbą całkowitą
  • Tworzone jest expression tree dla każdego działania i obliczany wynik
  • Zestawiane są wyniki prawej i lewej strony równania
  • Wynik zestawianie widzisz na ekranie

Szczegóły projektu dla zainteresowanych

Opis projektu zamieszczę na moim blogu. Myślę, że część z kalkulatorem opartym o expression tree może być szczególnie interesująca.
Tymczasem możesz zapoznać się z innymi wpisami.

An error has occurred. This application may no longer respond until reloaded. Reload 🗙