Python

Условие внизу. Офигеть О_О

Ввод: ((25, 33, 69, 58, 59),
(73, 49, 50, 27, 6),
(29, 3, 0, 53, 10),
(45, 37, 28, 74, 54),
(1, 5, 23, 60, 70))
Вывод внизу.
Серижан Толханбаев
Серижан Толханбаев
2 318
Лучший ответ
Саша Барсуков Цитирую задание: "Все числа должны быть разными". 24 вызова randint(1, 75) практически гарантировано дадут коллизию. Подробности: https://ru.wikipedia.org/wiki/Парадокс_дней_рождения
Насколько я понимаю, нужно просто создать двухмерный массив из введенных значений.
Поскольку я не хочу насмешек с неудачным переводом из одного языка в другой, а "думаю" я операторами Си или С++, то напишу на Си. К тому же меня бесят в Питоне эти тупые отступы для блоков... )))
Языки очень похожи, т. ч. при желании...
Во всяком случае логика прозрачна, а ввод и генерацию случайных чисел я написал операторами Питона, чтобы вы не вникали в тонкости этих операторов на Си ))

#define N 25 // При необходимости размерность массива и матрицы элементарно меняется
#define M 5

randomize() ;
for(i = 0 ; i < N ; i++) { arr[i] = input() ; flag[i] = 1 ; }
for(i = 0 ; i < M ; i++)
for(j = 0 ; j < M ; j++) { if (i = j) res[i][j] = 0 ;
else { k = randint(0, N-1) ;
if(flag[k] && arr[k] != 0) { res[i][j] = arr[k] ; flag[k] = 0 ; } } }

// ********* Ну и с комментариями *************
randomize() ; //инициализируем генератор случайных чисел
for(i = 0 ; i < N ; i++)
{ arr[i] = input() ; flag[i] = 1 ; } //вводим значения средствами Питона и формируем массив их индексов-флагов

for(i = 0 ; i < M ; i++) // для всего двухмерного массива (матрицы)
for(j = 0 ; j < M ; j++)
{
if (i = j) res[i][j] = 0 ; // если это центральный элемент - это 0
else
{
k = randint(0, N-1) ; // получаем случайный индекс матрицы оператором Питона
if(flag[k] && arr[k] != 0) // Если флаг = 1, т. е. элемент еще не выбирался и элемент не равен 0
{ res[i][j] = arr[k] ; flag[k] = 0 ;} добавляем случайный элемент из введенных данных в результирующую матрицу и обнуляем соответствующий флаг, т. е. элемент уже использовался.
} // конец else
} // конец for
Roma Trend
Roma Trend
51 216
Виталий Андреевич спасибо все равно, очень познавательно!!!
def make_bingo():
~~import random
~~arr = list(range(1, 76)) # создаём массив с значениями от 1 до 75
~~random.shuffle(arr) # перемешиваем этот массив случайным образом
~~arr[12] = 0 # ставим 0 в центр будущего квадрата
~~return tuple([tuple(arr[i : i + 5]) for i in range(0, 25, 5)]) # создаём кортеж кортежей
Саша Барсуков
Саша Барсуков
68 092
Более долгий путь.. )
На каком я уже курсе?
Вл Садовин
Вл Садовин
18 091
Виталий Андреевич на новых библиотеках)