Я пытаюсь сгенерировать некоторые числа, чтобы разница всегда была положительной.пользователь вводит количество цифр и количество строк, которые они хотят.например, 3 цифры, 3 строки:
971
888
121
Я хочу убедиться, что разница между ними всегда положительна.Есть ли какой-то алгоритм, который я могу использовать.прямо сейчас у меня есть программа, которая создает числа, затем вычитает их, и если получится отрицательный результат, он сделает это снова ... и снова.Это очень медленно.
Я думал о том, чтобы сначала создать разницу, а затем добавить ее, пока не будет достигнуто количество нужных строк.Но я столкнулся с проблемами, если я генерирую очень большое количество.
вот код, который я использую для генерации случайного числа с X цифрами, на всякий случай, если это имеет значение
private fun createRandomNumber(digits: Int): Int {
val numberArray = IntArray(digits)
for (number in 0 until numberArray.size){
numberArray[number] = 9
}
val maxnumber:Int = numberArray.joinToString("").toInt()
numberArray[0] = 1
for (number in 1 until numberArray.size){
numberArray[number] = 0
}
val minnumber:Int = numberArray.joinToString("").toInt()
return (minnumber..maxnumber).random()
}
, основываясь на предложении Джеффа Боумена, я начал с сортировки массива:все числа, которые генерируются, и это ускоряет все до приемлемого количества!