ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ: Достаточно теоретический вопрос здесь, не ищите правильно answere, просто прося о каком-то вдохновении!Получите самое большое число среди нескольких целых чисел без использования массивов
Рассмотрим это:
Функция называется повторно и возвращает целые числа, основанные на семена (то же семян возвращает то же целое число). Ваша задача - выяснить, какое целое число возвращается чаще всего. Легко, правда?
Но: Вам не разрешено использовать массивы или поля для хранения возвращаемых значений указанной функции!
Пример:
int mostFrequentNumber = 0;
int occurencesOfMostFrequentNumber = 0;
int iterations = 10000000;
for(int i = 0; i < iterations; i++)
{
int result = getNumberFromSeed(i);
int occurencesOfResult = magic();
if(occurencesOfResult > occurencesOfMostFrequentNumber)
{
mostFrequentNumber = result;
occurencesOfMostFrequentNumber = occurencesOfResult;
}
}
, если getNumberFromSeed()
возвращает 2,1,5,18,5,6 и затем mostFrequentNumber
должно быть и occurencesOfMostFrequentNumber
должно быть потому, что 5 возвращается 3 раз.
Я знаю, что это можно легко решить, используя двумерный список для хранения результатов и событий. Но представьте на минуту, что вы не можете использовать какие-либо массивы, списки, словари и т. Д. (Возможно, потому, что система с запущенным кодом имеет такую ограниченную память, что вы не можете хранить достаточно целых чисел сразу или потому, что ваш доисторический язык программирования не имеет понятия коллекций).
Как найти mostFrequentNumber
и occurencesOfMostFrequentNumber
? Что делает magic()
do ?? (. Из потому что вы не должны придерживаться примера кода Любые идеи приветствуются!)
EDIT: Я хотел бы добавить, что целые числа, возвращаемые getNumber()
должны быть рассчитаны с использованием семян, так же семя возвращает такое же целое число (то есть int result = getNumber(5);
это всегда присваивало бы такое же значение result
)
Умная идея, но даже если это намного меньший массив, это все равно массив. Вам не разрешено использовать какие-либо массивы - вообще – GuyMontag
OK @GuyMontag. Взгляните на обновление, которое я только что добавил. –
Спасибо за обновления, но все решения являются приблизительными или используют другие структуры, похожие на массивы. Во всяком случае, я нашел правильное решение, взгляните, если вы заинтересованы – GuyMontag