
30 баллов! Помогите, пожалуйста, очень нужно! Оформите задачу "напишите программу, которая просит
ввести натуральное число N, и генерирует список списков размера N×N, заполненных случайными числами из отрезка [-50, 50]" в виде вспомогательной функции, которая получает число N, а возвращает список списков размера N×N, заполненный случайными числами. Основная программа просит в цикле ввести натуральное число, с помощью вспомогательной функции генерирует список списков размера N×N, заполненный положительными и отрицательными числами, рассортировывает положительные и отрицательные числа по двум линейным спискам. Начал так(возможно неправильно), а дальше не знаю, т.к. впервые решаю циклы. Может по другому как-то нужно написать и подскажите, пожалуйста, что дальше нужно сделать. Sorted не предлагать. import random def rand(n): l = []*n for i in range(n): for j in range(n): l.append(random.randint(-50, 50)) return l def maximal(l1): a = l1 n = 1 while n a[i+1]: a[i],a[i+1] = a[i+1],a[i] print(n) def main(): n = input('Введите число: ') while n != '': n = int(n) l1 = rand(n) print(l1) maximal(l1) n = input('Введите число: ') main()

Ответы на вопрос

import random
def magic(n):
matrix = []
def sort(array):
i = 0
def check(array):
for j in range(len(array) - 2):
if array[j] > array[j + 1]:
return False
return True
while True:
if array[i] > array[i + 1]:
max = array[i]
array[i] = array[i + 1]
array[i + 1] = max
i += 1
if i > len(array) - 2:
i = 0
if check(array):
break
return array
def writeMatrix(matrix):
for arr in matrix:
print(arr)
for row in range(n):
matrix.append([])
for column in range(n):
matrix[row].append(random.randint(-50, 50))
print("Non sorted")
writeMatrix(matrix)
print()
print()
for arr in matrix:
arr = sort(arr)
print("Sorted rows")
writeMatrix(matrix) # sorted rows
column = []
for arr in matrix:
column.append(arr[0])
column = sort(column)
for j in range(len(column) - 1):
matrix[j][0] = column[j]
print()
print()
print("Full sorted")
writeMatrix(matrix) # sorted rows and columns
def main():
n = int(input())
magic(n)
main()



Вы начали хорошо, создав функцию rand(n)
, которая генерирует список списков размера N×N, заполненных случайными числами из отрезка [-50, 50]. Однако есть несколько недочетов в вашем коде. Я помогу вам исправить и дополнить его.
Функция
rand(n)
должна создавать список списков размера N×N. Вместо этого вы создаете одномерный список, заполняя его случайными числами. Для создания списка списков можно воспользоваться генератором списка внутри генератора списка.Вам нужно рассортировать положительные и отрицательные числа в два разных списка, но у вас есть функция
maximal
, которая пытается сортировать список, но она не очень понятно работает. Вместо этого, вы можете создать два пустых списка и в цикле перебирать элементы исходного списка, добавляя их в соответствующий новый список.
Вот исправленный и дополненный код:
pythonimport random
def generate_matrix(n):
matrix = []
for _ in range(n):
row = [random.randint(-50, 50) for _ in range(n)]
matrix.append(row)
return matrix
def main():
while True:
n_str = input('Введите натуральное число N (или пустую строку для выхода): ')
if not n_str:
break
try:
n = int(n_str)
if n <= 0:
print("Число N должно быть натуральным.")
continue
except ValueError:
print("Введите корректное натуральное число.")
continue
matrix = generate_matrix(n)
print("Сгенерированная матрица:")
for row in matrix:
print(row)
positive_numbers = []
negative_numbers = []
for row in matrix:
for number in row:
if number > 0:
positive_numbers.append(number)
elif number < 0:
negative_numbers.append(number)
print("Положительные числа:", positive_numbers)
print("Отрицательные числа:", negative_numbers)
if __name__ == "__main__":
main()
Этот код сначала запрашивает число N, затем генерирует матрицу размера N×N и рассортировывает положительные и отрицательные числа в два отдельных списка. Когда пользователь вводит пустую строку, программа завершает выполнение.


Похожие вопросы

Топ вопросов за вчера в категории Информатика








Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili