2015-10-15 5 views
0

Мне говорят, чтобы вырезать кубик много раз (несколько тысяч) сначала, а затем записывать количество раз, когда происходит каждое значение, и создавать временная гистограмма, отображающая X для рулона этого числа, например качению 3 1 «с, 2 2» с, и 5 3 «S может быть так:C++ разделите число, чтобы отобразить не более 60 символов для разных рулонов кости.

1 xxx 
2 xx 
3 xxxxx 

То, что я пытаюсь сделать, это найти способ делить иксы таким образом, чтобы появиться в самых 60 крестики рядом с номером.

У меня есть два экземпляра: прокатка одиночной записи 1-6, а затем две кости и запись суммы, находящейся в диапазоне 2-12 (11 значений).

Первоначально я попытался просто разделить количество рулонов на 360 (6 возможных значений для 1 die, 60 total Xs), чтобы получить количество вхождений, каждый из представленных X, а затем взять мой счет за рулон (скажем, я прокатил 1 2047 раз) и деление на это значение, поэтому, если бы я прокатил кости 12000 раз, то значение каждого X было бы 12000/360 = 33 (.3333 будет сброшено из-за целочисленного деления), тогда я бы отобразил 2047/33 X, но это дает 62.

У кого-нибудь есть лучший способ сделать это?

Я пробовал 11 * 60 для двух кубиков, и это было просто.

ответ

0

Это звучит как домашнее задание, поэтому вот подсказка: посмотрите, какое самое большое значение вам нужно отобразить, затем используйте это вместе с максимальной длиной для отображения (60), чтобы получить соотношение для вычисления длины каждой строки вывода.

+0

Я не могу определить наибольшее значение, нет крыши – user2763113

+0

@ user2763113 «Фигура» означает, что ваша программа просматривает данные и запоминает, какое наибольшее значение в массиве. – 1201ProgramAlarm

+0

Вы имеете в виду бросок, который произошел больше всего? Например, если я скачу между 1 и 3 и получаю 500 1 с, 2400 2 и 5000 3, я бы запустил номер 5000 для 3-х? – user2763113