def solution12(): """ 12. Для проверки остаточных знаний учеников после летних каникул, учитель младших классов решил начинать каждый урок с того, чтобы задавать каждому ученику пример из таблицы умножения, но в классе 15 человек, а примеры среди них не должны повторяться. В помощь учителю напишите программу, которая будет выводить на экран 15 случайных примеров из таблицы умножения (от 2*2 до 9*9, потому что задания по умножению на 1 и на 10 — слишком просты). При этом среди 15 примеров не должно быть повторяющихся (примеры 2*3 и 3*2 и им подобные пары считать повторяющимися) """ multy_table = {} for i in range(2, 10): for j in range(2, 10): example = ("%i*%i" % (i, j)) example_key = i * j multy_table[example_key] = example example_list = list(multy_table.values()) teachers_help = set() while len(teachers_help) < 15: rnd_index = rndrange(len(example_list)) teachers_help.add(example_list[rnd_index]) print(teachers_help)
def solution11(): """ 11. В двумерном массиве отсортировать четные столбцы по возрастанию, а нечетные - по убыванию """ rows = 5 columns = 8 matrix = [] for i in range(rows): line = [] for j in range(columns): rnd_j = rndrange(42) line.append(rnd_j) matrix.append(line) print("Original matrix") pp_matrix(matrix) tr_mx = transpose_matrix(matrix) for i in range(len(tr_mx)): if i % 2: tr_mx[i].sort() else: tr_mx[i].sort(reverse=True) sorted_matrix = transpose_matrix(tr_mx) print("----------") print("Sorted matrix") pp_matrix(sorted_matrix)
def solution10(): """ 10. Вывести на экран матрицу, транспонированную заданной (3*8) """ matrix = [] for i in range(3): line = [] for j in range(8): rnd_j = rndrange(42) line.append(rnd_j) matrix.append(line) pp_matrix(matrix) transpose_matrix = [] for j in range(len(matrix[0])): line = [] for i in range(len(matrix)): line.append(matrix[i][j]) transpose_matrix.append(line) pp_matrix(transpose_matrix)
def solution6(n=100): """ 6. Создать список из 10 любых простых чисел, записанных в случайном порядке. """ prime_numbers = list(range(2, n + 1)) sqn = math.sqrt(n) p = 2 j = 1 while p < sqn: for i in range(j, len(prime_numbers))[::-1]: if prime_numbers[i] % p == 0: del prime_numbers[i] p = prime_numbers[j] j += 1 random_primes = [ prime_numbers[rndrange(len(prime_numbers))] for i in range(10) ] print(random_primes)
def solution9(): """ 9. Нормировать одномерный массив случайных чисел. Нормирование означает приведение всех значений массива к интервалу [-1;1], причем максимальное абсолютное значение элементов после нормирование должно быть равно 1. Например, последовательность {-5, 3, 4} после нормирование будет выглядеть {-1, 0.6, 0.8} """ rnd_set = [rndrange(-42, 42) for i in range(10)] rnd_set.sort() x_max = max([abs(i) for i in rnd_set]) norm_set = [i / x_max for i in rnd_set] norm_set.sort() print(rnd_set) print(norm_set)
def solution8(): """ 8. В одномерном массиве поменять местами минимальный и максимальный элементы. Остальные оставить на своих местах. """ one_set = [rndrange(100) for i in range(10)] print(one_set) max_digit = max(one_set) min_digit = min(one_set) max_pos = one_set.index(max_digit) min_pos = one_set.index(min_digit) one_set[max_pos] = min_digit one_set[min_pos] = max_digit print(one_set)