Предмет: Информатика, автор: LSM54

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()


LSM54: ЯП-питон
restIess: список списков это вы матрицу так называете?)
Alpixx: ты ранишь называя матрицу "список списков", а добиваешь тем что надо самому кодить встроенную функцию sorted() :) :(
LSM54: Это не я, а учитель такие задачки сочиняет. Да, sorted к сожалению нельзя использовать. Может быть список списков это матрица в понимании учителя.
Alpixx: numpy я так понимаю тоже нельзя, эх придётся подумать

Ответы

Автор ответа: Alpixx
1

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()


Alpixx: я старался :D
Похожие вопросы
Предмет: Математика, автор: rashidasid
Предмет: Алгебра, автор: motryk1
Предмет: Математика, автор: Аноним