@ru_python

Страница 5920 из 9768
Nick
13.07.2018
12:55:47
Спасибо, работает, но медленно почему-то...
Это нормально. Никто не говорил что процессы ускорят. А если простой таск то и подавно

Tigran
13.07.2018
12:56:17
я там всего-то меньше 500 окружностей успел перебрать
Обидно, а я сижу отлаживаю свой матан

я там всего-то меньше 500 окружностей успел перебрать
Ты проверил, что в твоей окружности лежит ровно 1000 точек?

Google
El Mariachi
13.07.2018
12:57:12
Ты проверил, что в твоей окружности лежит ровно 1000 точек?
да, ровно 1000 внутри, ровно 1000 снаружи и ровно три на

Обидно, а я сижу отлаживаю свой матан
да я сам удивился что так легко нашлось... даже до сих пор не верится... но вроде уже все перепроверил

оставил чтоб прога не прерывалась, он мне каждые 3-4 секунды новую подходящую окружность выдает

вот вам и нейронные сети

Tigran
13.07.2018
12:59:58
мда

неужели задание было на перебор :(

El Mariachi
13.07.2018
13:00:27
ну, с другой стороны, это же mail.ru

чего от них еще ждать

Амир
13.07.2018
13:00:39
Denis
13.07.2018
13:01:27
фпиръод
https://www.digitalocean.com/community/tutorials/linux-nginx-mysql-php-lemp-ubuntu-16-04-ru всё сделал, заработало а как сделать https а то у меня нет доступа к камере

El Mariachi
13.07.2018
13:01:52
неужели задание было на перебор :(
но я все еще надеюсь что в математике тупо ошибся

Ildar
13.07.2018
13:02:18
теперь гугли в ту сторону: https://letsencrypt.org/

Google
Rasha
13.07.2018
13:03:57
есть задача более интересная ()

Ildar
13.07.2018
13:04:33
https://www.digitalocean.com/community/tutorials/linux-nginx-mysql-php-lemp-ubuntu-16-04-ru всё сделал, заработало а как сделать https а то у меня нет доступа к камере
ссылку на digitalocean не даю, т.к. когда в последний раз читал про это дело там был баг и весь сервак падал, хз может поправили - главное комменты к статье все читай

был описан багованный процесс получения и обновления сертификатов и автоматического обновления nginx через letsenrypt'овые тулзы(

Tigran
13.07.2018
13:10:13
Ildar
13.07.2018
13:12:47
Tigran
13.07.2018
13:13:14
А жаль, я придумал крутой алгоритм (сейчас у него, правда, проблемы с точностью)

Евгений
13.07.2018
13:14:27
можно еще a[:a.find('/',2)]+a[a.rfind('/'):]
Не, у меня в одной линии может быть два патфа, поэтому я пользуюсь r"/([^/\n(\\ )])+/\.\./" в цикле, только пока не знаю, как узнать, заменилось или нет (что бы из цикла выйти)

Big
13.07.2018
13:15:05
Ребят у каво есть почта .edu?

Артем
13.07.2018
13:15:11
Ребят, есть вопрос. Как называется вот эта фишка : a[::-1] Я знаю что она делает, но как называется? Отрицательный срез? Или что это?

Артем
13.07.2018
13:17:06
a.reverse()
Да, спасибо, я знаю аналоги. Мне нужно именно как эта фишня называется

Quasar
13.07.2018
13:17:36
steps

Артем
13.07.2018
13:18:25
steps
Все понял спасибо.

El Mariachi
13.07.2018
13:20:16
А жаль, я придумал крутой алгоритм (сейчас у него, правда, проблемы с точностью)
Ну, судя по тому сколько там таких окружностей (там даже с одной фиксированной точкой перебирая остальные куча находится), можно просто проверить насколько твой алгоритм быстрее брутфорса )

Aragaer
13.07.2018
13:20:58
то есть мой алгоритм с прямой никто не стал пытаться реализовать?

Google
El Mariachi
13.07.2018
13:21:20
то есть мой алгоритм с прямой никто не стал пытаться реализовать?
он оказался слишком сложен для этой задачи )

Tigran
13.07.2018
13:21:32
то есть мой алгоритм с прямой никто не стал пытаться реализовать?
сам реализуй, он у тебя довольно сложный по описанию

Aragaer
13.07.2018
13:21:44
дайте инпут тогда, попробую

El Mariachi
13.07.2018
13:22:24
ну у меня весь запуск скрипта длится 100 миллисекунд
так ты не останавливайся на первом найденном решении, а найди все ))

Tigran
13.07.2018
13:22:46
El Mariachi
13.07.2018
13:23:03
дайте инпут тогда, попробую
тут в файлах, последний файл (3.point)

у тебя все за сколько находятся?
Я все не искал... у меня в среднем одно решение в 3-4 секунды

Tigran
13.07.2018
13:24:22
Я все не искал... у меня в среднем одно решение в 3-4 секунды
У меня с десяток решений в секунду выдаёт

El Mariachi
13.07.2018
13:24:44
ну вот и разница

Tigran
13.07.2018
13:25:15
их просто дохрена

Ildar
13.07.2018
13:25:24
ничосе я щас конструкцию увидал как получить 0й и последний элемент: a[::len(a)-1]

Tigran
13.07.2018
13:25:44
ну вот и разница
попробую сделать скрипт, генерирующий более сложные случаи

El Mariachi
13.07.2018
13:26:35
У меня с десяток решений в секунду выдаёт
"Лучше целый день потерять, но потом за 5 минут долететь!" (с)

Tigran
13.07.2018
13:28:27
За несколько минут меньше 1%

Aragaer
13.07.2018
13:30:00
так надо все решения или любое одно?

El Mariachi
13.07.2018
13:30:07
Tigran
13.07.2018
13:30:10
требуют любое вроде бы

Google
El Mariachi
13.07.2018
13:30:13
но оказалось слишком просто

Tigran
13.07.2018
13:30:17
это мы так, фаллометрией занимаемся

Aragaer
13.07.2018
13:30:19
мой алгоритм даст только одно

Tigran
13.07.2018
13:30:34
я нахожу одно за 100мс

интересно, кстати, сколько вообще минимально может быть решений в этой задаче

Aragaer
13.07.2018
13:31:46
ммкай, я нашел готовую штуку, которая делает условно первую половину

а впрочем..

Tigran
13.07.2018
13:31:57
трудно себе представить конфигурацию, в которой перебор будет долго работать

Admin
ERROR: S client not available

Aragaer
13.07.2018
13:32:37
не, не могу придумать халявного способа довести до ответа

Jl
13.07.2018
13:32:53
Python 3.7.0 Release Date: 2018-06-27 from dataclasses import dataclass, field @dataclass(order=True) class Country: name: str population: int area: float = field(repr=False, compare=False) coastline: float = 0 def beach_per_person(self): """Метры береговой линии на человека""" return (self.coastline * 1000) / self.population

Aragaer
13.07.2018
13:32:55
то есть сейчас у меня есть прямая, которая делит на 1001 и 1001

Jl
13.07.2018
13:33:03
Что скажете по данной конструкии в 3.7

Круто ведь

Aragaer
13.07.2018
13:33:47
я люблю поля префиксить подчеркиванием

и если надо, то доступ по геттерам

Jl
13.07.2018
13:35:27
По натации так и надо

я люблю поля префиксить подчеркиванием

и если надо, то доступ по геттерам

Tigran
13.07.2018
13:37:40
Зацените мой алгоритм. Перебираем всевозможные пары точек (их O(N^2)) и для каждой пары делаем следующее за O(N log N): Проводим через две точки прямую. Все точки побились на "левые" и правые". Теперь в каждой половине побьём точки ещё на две группы: те, которые при построении окружности с зафиксированными двумя дают центр "слева" и "справа". Теперь у нас четыре группы точек. Отсортируем их все по величине радиуса окружности, которую они образуют с зафиксированными точками. Заметим, что окружность, проведённая через "левую" точку с "левым" центром, включает все "левые" точки с "левым" центром с меньшим радиусом окружности, все "правые" точки с "левым" центром и большим радиусом окружности, и вообще все "левые" точки с "правым" центром. Таким образом, мы можем быстро вычислять для каждой из оставшихся точек, сколько будет точек в соответствующей окружности, если будем идти одновременно по массиву "левых" точек с "левым" центром в одну сторону и по массиву "правых" точек с "левым" центром в другую. Аналогично с заменой правого на левое. Получаем O(N log N) на сортировку и O(N) на линейные проходы по массивам.

Google
Aragaer
13.07.2018
13:38:40
я запутался 8)

Tigran
13.07.2018
13:38:53
Тут рисовать надо)

Aragaer
13.07.2018
13:39:10
мой алгоритм можно нарисовать, выглядит это красиво и просто, но я плохо понимаю, как его реализовать

первый шаг - найти прямую, которая делит на 1001, прямая с одной точкой, 1001

это делается с помощью statistics.median - там сложность наверняка не более N*logN

но может быть, что таким образом попалось более 1 точки, тогда надо сделать небольшой поворот

а дальше надо эту одну прямую "скруглить", пока она не коснется еще двух

El Mariachi
13.07.2018
13:42:33
Зацените мой алгоритм. Перебираем всевозможные пары точек (их O(N^2)) и для каждой пары делаем следующее за O(N log N): Проводим через две точки прямую. Все точки побились на "левые" и правые". Теперь в каждой половине побьём точки ещё на две группы: те, которые при построении окружности с зафиксированными двумя дают центр "слева" и "справа". Теперь у нас четыре группы точек. Отсортируем их все по величине радиуса окружности, которую они образуют с зафиксированными точками. Заметим, что окружность, проведённая через "левую" точку с "левым" центром, включает все "левые" точки с "левым" центром с меньшим радиусом окружности, все "правые" точки с "левым" центром и большим радиусом окружности, и вообще все "левые" точки с "правым" центром. Таким образом, мы можем быстро вычислять для каждой из оставшихся точек, сколько будет точек в соответствующей окружности, если будем идти одновременно по массиву "левых" точек с "левым" центром в одну сторону и по массиву "правых" точек с "левым" центром в другую. Аналогично с заменой правого на левое. Получаем O(N log N) на сортировку и O(N) на линейные проходы по массивам.


Aragaer
13.07.2018
13:42:38
это примерно N+N. Сначала для каждой точки найти радиус окружности, чтобы проходило через нее и еще ту одну выделенную. Выбрать максимальный (это одна из 2)

и потом еще раз пройти, чтобы выбрать максимальный радиус, чтобы проходило через уже найденные две

но у меня мозг в арифметику чот не способен сегодня

Tigran
13.07.2018
13:44:22
чот действительно быстро получается

хотя стоп

Mikhail
13.07.2018
13:44:58
мой алгоритм можно нарисовать, выглядит это красиво и просто, но я плохо понимаю, как его реализовать
не очень похоже на универсальное решение нет же гарантии, что поделив линией на 2 части, сможешь оставшимися точками достроить нужную окружность (поделить точки попалам)

Tigran
13.07.2018
13:45:04
а дальше надо эту одну прямую "скруглить", пока она не коснется еще двух
проблема в том, что если ты скруглишь прямую, в окружность с другой стороны могут ещё точки влезть

Aragaer
13.07.2018
13:45:36
нет, потому что они с другой стороны прямой

вся окружность лежит с этой стороны, а прямой только касается в выделенной точке. Вроде так

Tigran
13.07.2018
13:48:36
а, так сгибать

Страница 5920 из 9768