@ru_python

Страница 47 из 9768
Kolyann
23.12.2015
22:29:17
а вообще, формула для n-го дома

начнём с частного случая - 3

Artem
23.12.2015
22:29:53
не, с формулой n-ного дома будет слишком долго, я пробовал уже

Kolyann
23.12.2015
22:30:26
ну да, это всё о разложении на множители

Google
Artem
23.12.2015
22:30:34
вот так с numpy delivering presents [#######-----------------------------] 19% 0d 00:03:05

Kolyann
23.12.2015
22:30:49
не помню как функция зовётся, вроде функция делителей

Artem
23.12.2015
22:31:09
это из квантового мира что-то :)

Kolyann
23.12.2015
22:32:22
скорее из теории чисел

https://ru.wikipedia.org/wiki/Функция_делителей

Artem
23.12.2015
22:34:58
решил, в общем смотри, конецпция такая: limit = 36000000 presents = np.zeros(limit // 10) for elf in np.arange(1, limit // 10): presents[elf::elf] += elf * 10

https://ru.wikipedia.org/wiki/Функция_делителей
а толку, ее же не разложишь

Kolyann
23.12.2015
22:36:50
можно нарыть последовательность функции делителей

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

Elena
23.12.2015
22:37:22
а толку, ее же не разложишь
О, я только заметила. У тебя офигенное имя! У меня так кота зовут☺️

Nikita
23.12.2015
22:37:38
У тебя кота зовут Артём?

))))))

Kolyann
23.12.2015
22:37:47
т.е. даже и не считать сколько там эльфы доставили

Google
Kolyann
23.12.2015
22:38:19
грязные хаки, конечно

Elena
23.12.2015
22:39:19
У тебя кота зовут Артём?
Да, ласково Тёмочка☺️

Kolyann
23.12.2015
22:39:27
https://oeis.org/A000203

Artem
23.12.2015
22:39:30
в project euler много таких задач, которые без математической оптимизации будут считаться сутками, а при должном умении их можно на листочке решить

Kolyann
23.12.2015
22:39:42
ога, игрался немного с ним

Nikita
23.12.2015
22:40:00
угу

Kolyann
23.12.2015
22:40:02
правда забил потому что у меня задачи делились строго пополам

либо нихера не понятно, либо вроде и ничего

но особо заморачиваться не хочется

Artem
23.12.2015
22:40:29
но я последний раз больше года назад оттуда что-то решал

Kolyann
23.12.2015
22:40:33
кинь ссылку плиз

Artem
23.12.2015
22:40:41
projecteuler.net

Kolyann
23.12.2015
22:41:40
о прикольно

когда последний раз заходил там ещё не было формы ввода ответов

тупо вопросы

о, а вот и функция делителей :D

https://oeis.org/A034885/b034885.txt

ой фак эт не она(

Artem
23.12.2015
22:49:51
там 300 мб цифр будет, даже если ты найдешь

Google
Kolyann
23.12.2015
22:49:58
нет)

я нашёл какую-то левую функцию

там f(600) > 10^10

Artem
23.12.2015
22:51:17
мне кажется, лучше зайти с другого конца и делать слайсами с шагом номера эльфа, чем считать делители

Kolyann
23.12.2015
22:51:31
так это и есть делители

к 10 дому подойдут только 1, 2, 5 и 10 эльфы

1+2+5+10 = 18

sigma(10) = 18

Artem
23.12.2015
22:52:08
ну вот и надо по эльфам итерироваться, а не по домам

Kolyann
23.12.2015
22:52:21
я говорю о том что надо вообще не итерироваться :D

а найти ЁБАНУЮ ПОСЛЕДОВАТЕЛЬНОСТЬ ГДЕ ОНА

https://oeis.org/A000203

кто-нибудь видит на странице ссылку на последовательность?

Artem
23.12.2015
22:53:55
ага, апи для последовательностей

Kolyann
23.12.2015
22:55:56
https://oeis.org/A000203/b000203.txt

ага, попалась

ы

там не хватает

а ещё чо прикольно - степень двойки даёт чётко выверенный ответ

f(x) = 2^x - 10

Google
Kolyann
23.12.2015
22:59:16
f(2) = 30

f(4) = 70

ой тьфу

2^(x+1) - 10

f(2^3) = 15

House 8 got 150 presents

десятки смутили и спать пора

Artem
23.12.2015
23:01:28
погоди, щас сигму тебе скину

Kolyann
23.12.2015
23:01:30
таким образом отправную точку отсчёта вообще перебирать не надо, находится за логарифм

я всё равно не увижу

я уже вырубаюсь)

Artem
23.12.2015
23:02:08
там скачет сильно результат, поэтому отправная точно сильно примерна

Kolyann
23.12.2015
23:02:26
отправная в любом случае считается за логарифмическое время

у меня вот найти больше 3 400 000, делим на 10 (т.к. эльфы носят по 10 подарков) получаем 340 000

2^(x+1) - 1 > 340 000

x+1 > log2(340 000)

Artem
23.12.2015
23:03:53
а у меня 36 млн, лол

Kolyann
23.12.2015
23:04:11
ну считай ещё 3 шага от меня

4

log2(340000) = 18

Google
Kolyann
23.12.2015
23:05:07
x = 2^17

т.е. ответ находится где-то между 2^16 и 2^17 (для меня)

для тебя между 2^20 и 2^21

±порядок

Artem
23.12.2015
23:07:16
тут сигма до 3,6 млн, так как эльфы носят по 10, точно хватит

Kolyann
23.12.2015
23:07:30
:D

Artem
23.12.2015
23:07:56
распакуй, а потом загружай так: sigma = numpy.loadtxt('sigma.txt')

Kolyann
23.12.2015
23:09:01
а, у меня 34 миллиона

нолики уже слипаются

Artem
23.12.2015
23:09:11
для тебя между 2^20 и 2^21
у меня ответ получился между 2^19 и 2^20

Kolyann
23.12.2015
23:09:53
786240

±порядок

пасиба за сигму

Artem
23.12.2015
23:10:33
мне кажется, она загружаться только минуту будет :)

Kolyann
23.12.2015
23:10:46
в notepad++ открылась моментально

part 2 ...each Elf will stop after delivering presents to 50 houses...

ага, ага, ясно, понятно, спасибо, я, пожалуй, пойду спать

у тебя ответ я так понимаю 831600

Artem
23.12.2015
23:12:42
ага

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