Чтобы сгенерировать случайное число из массива, в котором предыдущее значение не равно текущему значению, вы можете использовать следующие методы:
Метод 1: перетасовка и итерация
Один из подходов — перетасовать массив случайным образом, а затем выполнить итерацию по нему, проверяя, что предыдущее значение не равно текущему значению. Вот пример на Python:
import random
def generate_random_number(arr):
random.shuffle(arr)
for i in range(1, len(arr)):
if arr[i] != arr[i-1]:
return arr[i]
return None # Handle the case where no suitable number is found
# Example usage:
numbers = [1, 2, 3, 4, 5]
random_number = generate_random_number(numbers)
print(random_number)
Метод 2: произвольный выбор и проверка
Другой подход заключается в случайном выборе значения из массива и проверке того, что оно не равно предыдущему значению. Если это так, повторяйте процесс, пока не будет найдено подходящее число. Вот пример на JavaScript:
function generateRandomNumber(arr) {
var previousValue = null;
var randomIndex, randomValue;
do {
randomIndex = Math.floor(Math.random() * arr.length);
randomValue = arr[randomIndex];
} while (randomValue === previousValue);
return randomValue;
}
// Example usage:
var numbers = [1, 2, 3, 4, 5];
var randomNumber = generateRandomNumber(numbers);
console.log(randomNumber);
Метод 3: рекурсивный подход
Вы также можете использовать рекурсивную функцию, которая продолжает генерировать случайные числа, пока не будет найдено подходящее число. Вот пример на Java:
import java.util.Random;
public class RandomNumberGenerator {
private static int generateRandomNumber(int[] arr, int previousValue) {
Random random = new Random();
int randomIndex = random.nextInt(arr.length);
int randomNumber = arr[randomIndex];
if (randomNumber != previousValue) {
return randomNumber;
} else {
return generateRandomNumber(arr, previousValue);
}
}
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5};
int previousValue = -1; // Set an initial previous value
int randomNumber = generateRandomNumber(numbers, previousValue);
System.out.println(randomNumber);
}
}