1 Востаннє редагувалося Betterthanyou (19.04.2022 13:04:19)

Тема: Знайти математичний приклад за мінімальну кількість дій

Є чотири змінних (які не можуть змінюватися):
х1 = 0,2
х2 = 0,3
х3 = 0,4
х4 = 0,5

1) Потрібно знайти математичний приклад з найменшим використанням арифметичних дій по відповіді до прикладу.

математичний приклад

Маю на увазі будь-який математичний приклад з використання арифметичних дій: "+", "-", "*", "/"
Наприклад:
х1+х1
х1/х2
х3+х4/х1
х2*х3-х1

відповідь до прикладу

відповідь до прикладу, це те що вийде у результаті виконання всіх арифметичних операцій
Наприклад:
х1+х1 -> 0,2+0,2 -> 0,4
0,4 - це відповідь до прикладу

2) По пріоритету арифметичних дій, більш пріоритетні ті варіанти що використовують "+","-" чим "*","/"
Перший пріоритет "+", "-"
Другий пріоритет "*","/"

Якщо є вибір, що використати для створення "математичного прикладу", між: "+","-" і "*","/" потрібно обирати "+","-"

Тобто:
а) Якщо "відповіді до прикладу" = 0,4. Для цієї відповіді підходять: х1/х4 -> 0,2/0,5 і х1+х1 -> 0,2+0,2
оптимальнішим буде варіант: х1+х1. Тому що дії "+,-" пріоритетній чим "*,/"
б) Якщо "відповіді до прикладу" = 0,16. Для цієї відповіді підходять: х3*х3 -> 0,4*0,4 i х4*х3-х3 -> 5*4-4 i х4+х4+х3+х1 -> 5+5+4+2 i т.д.
оптимальнішим буде варіант: х3*х3. Тому що менша кількість дій важливіша чим пріоритет арифметичних дій

уточнення

- У прикладі використовується звичайна послідовність арифметичних дій, тобто спочатку "*","/", а потім "+","-"
- Можна у будь-якій послідовності використовувати арифметичні дії: "+", "-", "*", "/". Тобто саме краще "+","-" при мінімально можливих кількості дій
- Саме важливо, це менша кількість арифметичних дій при створенні "математичного прикладу", але якщо при одинакові кількості арифметичних дій є декілька варіантів "математичного прикладу" потрібно обирати по пріоритету дій (спочатку "+","-" а потім "*","/")
- "відповідь до прикладу" може бути також негативна: -0,3, -0,9 і т.д.
- Неможна давати відповідь одною змінною, потрібно виконати хоча б одну арифметичну операцію: Наприклад: Якщо введено 0,4, не можна дати відповідь х3. Потрібно х1+х1

Ця задача схожа на задачку "Знаходження суми з найменшою кількістю монет" для якої є "Жадібний алгоритм"
Різниця в тому, що в даному варіанті є не тільки дія "+", а ще "-", "*", "/". А також пріоритет дій.

Наприклад:
Ввід: 0,4 Відповідь: х1+х1
Ввід: 0,16 Відповідь: х3*х3
Ввід: -0,3 Відповідь: х1-х4

Запитання:
Який алгоритм підійде для такої задачі ? Я зараз використовую алгоритм перебору, але він довго працює
Напишіть чи ви зрозуміли умову. Якщо ні, то що не зрозуміло ?

2

Re: Знайти математичний приклад за мінімальну кількість дій

Я так і не знайшов алгоритму за яким можна вирішити дану задачу, тому я вирішив методом перебору знайти всі відповіді та записати до бази даних, а потім витягувати потрібні результати з бази даних.

3

Re: Знайти математичний приклад за мінімальну кількість дій

А за допомогою графу пробували?

Подякували: Betterthanyou1