В мешке находится 24 белые перчатки и 20 чёрных перчаток: Решение программой GlovesCount


Автор: в

Попалась мне задачка занимательная школьная про белые и черные перчатки, в голову она мне запала. Поскольку я изучаю Java, ради практики решил написать программу, которая бы решала данную задачу и позволяла бы вводить свои условия. Написал программу, которую назвал GlovesCount. Тут её можно скачать. А ещё я переписал программу на JavaScript, и её вы сможете запустить прямо в браузере. Ссылка будет ниже.


В мешке находится 24 белые перчатки и 20 чёрных перчаток: Решение

Чтобы решить задачу мне пришлось продумать и визуализировать логику программы. Картинку с логикой ищите ниже. Как только я это сделал, я понял, насколько, на самом деле всё просто решается. Но я легких путей никогда не искал.

Здесь я сначала напишу простое логическое решение этой задачи без программы, а уж ниже, если кому-то интересно будет, можете и программу скачать.

Условия у этой задачи такие:

В мешке находится 24 белые перчатки и 20 черных перчаток.

- Перчатки достают из мешка парами.

- Если достали пару перчаток одного цвета, то в мешок кладут чёрную перчатку.

- Если достали пару перчаток разного цвета, то в мешок кладут белую перчатку.

Какого цвета окажется перчатка, которая останется в мешке последней?

Для нетерпеливых сразу напишу, что решение при таких условиях следующее - последней в мешке останется черная перчатка.

Почему так? Решение очень простое. Результат зависит от того, четное или нечетное количество белых перчаток в условии задачи. Если количество белых перчаток четное, то в конце всегда останется черная перчатка. Если же количество белых перчаток в начале нечетное, то в мешке в конце концов останется белая перчатка. Белые перчатки по условию задачи могут всегда только убывать по две штуки, тогда как черные перчатки по количеству могут убывать и прибывать только по одной.

Программа GlovesCount на JavaScript

Программа GlovesCount на JavaScript

Сразу напишу, что это апдейт этого поста от 06 июня 2020, поскольку программу я сначала написал на Java, а вариант GlovesCount на JavaScript залил на Github буквально только что.

Короче, теперь можете без геморроя с установкой и настройкой Java просто зайти вот по этой ссылке https://alpidovsky.github.io/gloves-count-js/, ввести две цифры, выбрать, хотите ли увидеть список всех действий, и получить результат прямо в браузере! Ура!

Дальше следует текст описания работы первоначально написаной программы на Java.

Моя программа GlovesCount на Java: Установка и настройка

Итак, решение задачи я нашел, написав консольную программу на Java. Назвал я программу простенько и со вкусом - GlovesCount.

в мешке находится 24 белые перчатки и 20 чёрных перчаток решение

Несмотря на то, что условие изначально звучало, как "в мешке находится 24 белые перчатки и 20 чёрных перчаток", в программу можно ввести два любых целых числа и получить ответ, какого цвета перчатка останется последней.

При этом программа может выдать поэтапный список действий, и можно проследить и проверить все действия от начала и до конца, какие перчатки вытащили, а какую положили обратно, и сколько после этого их в мешке осталось.

Список действий отображается в следующем виде:

Действие №: 1
Забрали две ЧЕРНЫЕ перчатки и положили обратно одну ЧЕРНУЮ.
Осталось: БЕЛЫХ - 24, ЧЕРНЫХ - 19

Действие №: 2
Забрали две РАЗНЫЕ перчатки и положили обратно одну БЕЛУЮ.
Осталось: БЕЛЫХ - 24, ЧЕРНЫХ - 18

А ещё она случайно выбирает, какие две перчатки вытащить, в зависимости от того, какие остались в мешке.

Чтобы запустить программу нужен Windows с установленной Java.

Исходник программы и рабочую версию с инструкцией можно найти и скачать на GitHub вот тут:

https://github.com/alpidovsky/GlovesCount

Если у кого-то возникли проблемы со скачиванием с GitHub, можете так же скачать архив с Яндекс Диска вот тут:

https://yadi.sk/d/0-LCaO7Zobn-Vg

По последней ссылке архив только с работающей программой и ничего лишнего. Там всё довольно просто. Единственный момент, который может показаться сложным для неподготовленного пользователя - это замена адреса, по которому находится файл java.exe. Но все инструкции есть в файле README.txt

Логика главного цикла программы GlovesCount

Перед тем, как начать писать код я схематично накидал логику главного цикла программы с помощью сервиса draw.io, чтобы не запутаться потом в коде. Получилась такая картинка.

программа GlovesCount

Если кто-то вдруг решит воспользоваться моим творением, и возникнут вопросы, пишите их тут в комментариях.

4 комментария

Unknown :

Здравствуйте.
Цитата-"Белые перчатки по условию задачи могут всегда только убывать по две штуки, тогда как черные перчатки по количеству могут убывать и прибывать только по одной."Но это же неверно! В условии сказано об одном цвете! А цвет парных перчаток может быть как белым так и чёрным.
В условии задачи

Unknown :

Это точно!

Александр Альпидовский :

"Но это же неверно! В условии сказано об одном цвете! А цвет парных перчаток может быть как белым так и чёрным.
В условии задачи"

Внимательно прочтите условия и проверьте свои логические выводы. В статье, как и в алгоритме и в программе, всё точно.

Михаил :
Этот комментарий был удален автором.

Отправить комментарий

Топ 5 популярных постов недели