В настоящее время я работаю над проблемой гипотезы Collatz. Приложите образ проблемы.Поиск последовательности Collatz с наибольшим количеством терминов
Теперь проблема, очевидно, говорится в диапазоне от 1 до 1000000. Но я добавил немного функциональности, позволяя пользователю выбирать, где должна начинаться начальная и конечная точка. Хотя я столкнулся с проблемой. (Как первый студент CS, не имеющий опыта программирования, мои знания сейчас очень ограничены).
Моя идея о том, как найти ту, которая имеет наивысшую последовательность, или самый высокий «loopCount», состоит в том, чтобы вытолкнуть число с соответствующим подсчетом цикла в массив и попытаться найти максимальное значение количества циклов в этом массиве. Но, насколько мне известно, это будет иметь 2-й массив.
Как я уже сказал, мои навыки программирования ограничены (мы еще не покрывали массивы), поэтому я не знаю, как начать это.
Вот что я до сих пор:
System.out.println("Enter starting point:");
Scanner userStartingPoint = new Scanner(System.in);
long startingPoint = userStartingPoint.nextInt();
System.out.println("Enter ending point:");
Scanner userEndingPoint = new Scanner(System.in);
long endingPoint = userEndingPoint.nextInt();
long timeBefore = System.currentTimeMillis();
int loopCount;
for(long i = startingPoint; i <= endingPoint; i++) {
long number = i;
loopCount = 1;
while(number != 1) {
if(number%2 == 0) {
number = number/2;
} else if(number%2 != 0) {
number = (3*number)+1;
}
loopCount++;
}
System.out.println("Number: " + i + ". " + "Loop count: " + loopCount + ".");
}
long timeAfter = System.currentTimeMillis();
long timeTaken = timeAfter - timeBefore;
System.out.println(endingPoint - startingPoint + " sequences.");
System.out.println("Time taken: " + timeTaken/1000 + " seconds.");
Я использую «длинные» как тип данных для многих переменных здесь, потому что я обнаружил, что некоторые числа имеют итераций, которые идут выше суммы, которую Тип данных 'int' может обрабатываться.
Как смущающе! Это, безусловно, гораздо более простой способ обойти это. спасибо – E13