Счетчик опций Java

Допустим, у меня есть 6 вариантов и 4 человека, которые могут выбрать любой из этих вариантов.

есть 4 переменные (int) по одной на каждого человека, они могут выбрать один вариант.

два или более человека могут выбрать один и тот же вариант.

как я могу подсчитать, сколько раз была выбрана каждая опция, не выполняя кучу операторов if?

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

Можете ли вы предоставить код, который у вас есть сейчас? Сообщество не предназначено для ответов на домашние вопросы. Сначала покажите свои усилия, отвечая на вопрос. Кроме того, если вам не разрешено использовать какие-либо структуры данных, то единственный способ сделать это - выполнить кучу операторов if.

Mark Melgo 26.02.2019 06:02
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
1
40
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

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

HashMap<Integer, Integer> selections = new HashMap<Integer, Integer>();

Спасибо, но я забыл упомянуть, что это урок программирования, и мне не разрешено использовать структуры данных Java. (Только что отредактировал сообщение).

Monther Basir 26.02.2019 05:46
Ответ принят как подходящий

Вы можете сохранить ответы, используя простые числа от p_1 до p_6. Уникальное простое число p для каждого варианта. Вы начинаете с целого числа «памяти» m. Каждый раз, когда пользователь u выбирает опцию i, вы умножаете свою «память» int на соответствующую опцию Prime m = m* p_i. В любой момент времени можно найти выбранные варианты как простое разложение m. Однако этот подход не позволяет восстановить порядок выбора. Если это тоже важно, вы можете альтернативно закодировать пользователя простыми числами и их ответами в качестве факторов m = p_1 ^ (опция пользователя 1) * p_2 ^ (опция пользователя 2) * ... * p_n ^ (опция пользователя n) . В любом случае ваш выбор немного зависит от того, что вы хотите делать с ответами и хотите ли вы представить больше пользователей или, скорее, больше вариантов. Я надеюсь, что это может указать вам полезное направление для вашего задания.

Другие вопросы по теме