Как стать автором
Обновить
-20
0.8

Пользователь

Отправить сообщение
Логика, как эпистемологический инструмент, изобретена независимо в трёх отдельных государствах: Греции (Аристотелем), Китае (императором Цинь Шихуанди) и Индии.

Фактчекинг в русскоязычном секторе интернета, как и в англоязычном, даёт основание полагать, что автор сего опуса — фантазёр.
генератор звуковых частот, работавший на лампе накаливания

HP200A и вправду использовал лампочку в качестве терморезистора в цепи обратной связи, но процитированный текст — это классическое «у ней внутре неонка».
Да там всё одинаковое )

3*3*3*5*5*7*11*13*17*19*23*29*31*37*41*43*47 == 0xbfffdd7cc41833d5
— это максимальное число, умещающееся в uint64 и делящееся без остатка на _все_ нечетные от 3 до 47 включительно. Таким образом твой ошибочный код прервётся, выполнив (49-3)//2 == 23 взятий остатков — это максимум, любое другое uint64 даст меньше.

Ближайшее большое простое — 0xbfffdd7cc4183473, _правильный_ код проверки его на простоту потребует int(0xbfffdd7cc4183473**.5)//2-1 == 1859772841 взятий остатков, т.е. в 80_859_688 раз больше.

Делаем выводы, расходимся )
Если все остатки нулевые, то что?
А еще, не достигший стадии принятия, наш мальчик минусует. Галеры, сэр.

Пацана взяли на слабо и поимели: босс от щедрот удвоил срока, но сделал его крайним. Пацан хотя бы смог это отрефлексировать. А наш мальчик терпит.
Не очень люблю вспоминать тот день.

Тут я сообразил, что это — перевод (да, я смотрю текст прежде авторства). И вот что я скажу — в нашей культуре всё по другому. Наш мальчик терпит.
Верно, что у меня n^2, но неверно, что меньше никак. Можно разменять память на время:
хранить в ячейках dp кортежи (длина палиндрома, индекс первого символа палиндрома, индекс последнего). Получим в итоге кортеж про длиннейший палиндром — тогда крайний символ кладём на стек, а у строки обрубаем начало и конец, включая эти первый и последний символы; если её длина <= 1 — палиндром считай восстановлен, иначе — опять ищем max на обкорнаной строке.
Извращение, конечно.
from operator import itemgetter

def f(s: str) -> str:
    def helper(s):
        prev = [(0, i, i) for i in range(len(s))]
        cur = [(1, i, i) for i in range(len(s))]
        key = itemgetter(0)
        for gap in range(1, len(s)):
            cur, prev = [(prev[i][0] + 2, i, i + gap) if s[i] == ch
                         else max(cur[i:i + 2], key=key)
                         for i, ch in enumerate(s[gap:])], cur[1:-1]
        return cur[0]

    st = []
    while len(s) > 1:
        le, lo, hi = helper(s)
        if le < 2:
            s = s[lo:lo + le]
        else:
            st.append(s[lo])
            s = s[lo + 1:hi]
    return (''.join([*st, s, *st[::-1]]))


print(repr(f('aba')))
Ну и по памяти вовсе не обязательно тратить О(n^2):
def f(s: str) -> str:
    prev, cur = [''] * len(s), s
    for gap in range(1, len(s)):
        cur, prev = [f'{ch}{prev[i]}{ch}' if s[i] == ch
                     else max(cur[i:i + 2], key=len)
                     for i, ch in enumerate(s[gap:])], cur[1:-1]
    return (cur[0] if s else '')
Songratulations
Это точно mi5, а не другая спецслужба?
Сразу же было решено отказаться от VBA поскольку я не программист от слова совсем.
Сейчас я веду учет в трех файлах — это DATA + файл с простыми вычислениями (BASIC)
Вы ни разу не последовательны от слова совсем.
… это никакая не гипотеза, а аксиома, следующая из законов логики, математики, психологии, физиологии.
Когда б вы знали, из какого сора
Растут аксиомы, не ведая стыда…
Видимо, я ошибся — мощные колонны намекали на то, что внизу крутые опоры. Позор на голову мою.
Я судорожно поискал надлежащий сопромат — и не нашел. Нет ни момента инерции люльки (ни по одному из измерений), ни общей концепции корыта. Люди, освящённые знанием — напишите. Всё одно, все секреты похернены.
Нет, так ты слона не продашь шляпу не впаришь </sarcasm>.

Отстой.
Прикольный обзор, но его практическая ценность сомнительна.

Сортировка — не тот процесс, которые отъедает пресловутые 80% времени в пайплайнах датасаенса (даже не 20%). Здравый смысл и опыт подсказывают, что на чем лопатишь данные (numpy/pandas/etc) — средствами той библиотеки их и сортируй, тогда эта сортировка занимает одну строку, да?

В Vanilla Python сортировка на месте происходит на удивление медленно...
Это — плата за универсальность. Попробуй сортировку массивов из объектов в numpy/pandas, и всё станет на свои места.

Всё же 0.2сек на сортировку 1kk чисел — это не ужас-ужас, так что
Используйте встроенную сортировку питона по умолчанию для исследования относительно небольших наборов данных.
Тем более, что
Timsort и, соответственно, Vanilla Python, постоянны.
Timsort устойчив, дорогой переводчик, ваш эпитет «определенный» был о том же. А Python — чистый.

Если вы хотите использовать GPU для сортировки, прикрепите .cuda() к концу вашего тензора.
Берегите себя.
a[2] += [3, 4] точно эквивалентно a[2].extends([3, 4]), что означает, что id(a[2]) не меняется, и стало быть контракт для элемента кортежа не нарушается.
Что то в списке награжденных не видать такой организации — «Курорт Белокуриха»

Не видишь суслика? А он есть.

ps Прибежал бот с минусом. А он таки есть.
image

Крайний слева — гендир «Курорт Белокуриха», один из награждённых (да, не айтишник).

А чего добился ты, username?
Это показывает небрежение истиной ради хлёсткой фразы.
Хлестаков он и есть.
А Вы молодец, гугл осваиваете. Удачи!

Информация

В рейтинге
1 445-й
Зарегистрирован
Активность