Как заполнять список только уникальными значениями
Подскажите как заполнять а может только возвращать из списка уникальные числа
Нужно сделать так, чтобы в консоль выводилось три ряда с пятью столбцами из уникальных чисел на всех трех рядах.
fun card() = MutableList(3){
MutableList(5){
Random.nextInt(1,MAX)
}
}
val artur = card()
artur.forEach { row ->
println(row)
}
Ответы (1 шт):
Автор решения: Danila Kartovitskii
→ Ссылка
Для выполнения задачи можете использовать generateSequence и distinct.
Вот пример кода:
import kotlin.random.Random
const val MAX = 20 // Максимальное значение для случайных чисел
fun generateUniqueNumbers(amount: Int, max: Int): List<Int> {
return generateSequence { Random.nextInt(1, max) }
.distinct()
.take(amount)
.toList()
}
fun card(): List<List<Int>> {
return List(3) {
generateUniqueNumbers(5, MAX)
}
}
fun main() {
val artur = card()
artur.forEach { row ->
println(row)
}
}
Функция card() создает "карту" размером 3x5
generateUniqueNumbers создает список уникальных чисел заданного количества из диапазона от 1 до MAX (Константа которую мы указали в самом начале, равная 20)
Пример выполнения программы:
[16, 8, 12, 7, 13]
[3, 16, 11, 6, 5]
[16, 9, 10, 3, 1]