Size: a a a

Сообщество Python Программистов

2021 April 29

AD

Andrew Dakhnovsky in Сообщество Python Программистов
че?
у меня работает
практически везде
источник

PB

Pavel Belyavtsev in Сообщество Python Программистов
У меня окно появляется за краями экрана
источник

PB

Pavel Belyavtsev in Сообщество Python Программистов
Это ужас просто
источник

¯

¯\_(ツ)_/¯  in Сообщество Python Программистов
источник

¯

¯\_(ツ)_/¯  in Сообщество Python Программистов
)
источник

AD

Andrew Dakhnovsky in Сообщество Python Программистов
поражены вашей неудачей
альт+пробел два раза кнопку вниз, ентер и двигаешь кнопками)))
источник

¯

¯\_(ツ)_/¯  in Сообщество Python Программистов
бля я там глобал увидел, страшно)
а так хорошо сконструированный вопрос + гугл транслейтор(если с англ худо) + поисковик с вероятностью 90%+ найдешь нужную вещь
источник

🅹

🅹🅾️🅺🅴🆁... in Сообщество Python Программистов
В некоторых чатах любопытные задания попадаются. Вот например - нужен генератор матрицы, у которой кол-во столбцов и колонок равно числу данному на вход. Элементами должны стать хаотично раскиданные значения от 1 до этого числа, но так чтобы они не повторялись ни в ряду, ни в столбце. Что-то типа принципа судоку. Короче взялся и запилил.

import random as r
from pprint import pprint

def matrix_shuffle(size: int = 2):
   if size <= 1: return
   nums = list(range(1, size+1))
   while True:
       try:
           matrix = []            
           col = [*map(list, [[]]*size)]
           while size - len(matrix):
               row = []
               for i in range(size):
                   col[i].append(r.choice(list(set(nums) - set(row) - set(col[i]))))
                   row.append(col[i][-1])
               matrix.append(row)    
       except: continue
       else: return matrix

pprint(matrix_shuffle(5))

Вроде все просто, но при таком заполнении чем больше будет число, тем дольше придется дожидаться результата, ведь количество тупиковых вариантов увеличивается в прогрессии.  Как бы ентот момент оптимизировать?..
источник

PB

Pavel Belyavtsev in Сообщество Python Программистов
Не помогло
источник
2021 April 30

ПЛ

Павлик Ливаткин... in Сообщество Python Программистов
ъ
источник

ПЛ

Павлик Ливаткин... in Сообщество Python Программистов
хэш таблицей
источник

ПЛ

Павлик Ливаткин... in Сообщество Python Программистов
когда новый элемент добавляешь проверять есть ли он уже в хеш таблице. такая проверка за О(1) будет
источник

ПЛ

Павлик Ливаткин... in Сообщество Python Программистов
а. сори. есть ограничение на число сверху. тогда не подойдёт (
источник

ПЛ

Павлик Ливаткин... in Сообщество Python Программистов
я чет думал новое число от 1 до бесконечности случайное не повторяющееся
источник

🅹

🅹🅾️🅺🅴🆁... in Сообщество Python Программистов
ну да, не так все просто
источник

ПЛ

Павлик Ливаткин... in Сообщество Python Программистов
ну тогда вроде делаешь первую строку из n не повторяющихся чисел, а потом её как в кольцевом буфере сдвигаешь.
источник

🅹

🅹🅾️🅺🅴🆁... in Сообщество Python Программистов
кстати да, можно попробовать, хотя это и не совсем хаотично )
источник

ПЛ

Павлик Ливаткин... in Сообщество Python Программистов
может я не прав, но чтобы не повторялись значения по столбцам - это ровно n строк возможно. других просто нет
источник

ПЛ

Павлик Ливаткин... in Сообщество Python Программистов
так что n строк которые являются вариантами кольцевого буфера, и их можно уже рандомно перемешать
источник

🅹

🅹🅾️🅺🅴🆁... in Сообщество Python Программистов
понял, вариант интересный
источник