Бред

Ответить в тред Ответить в тред
Аноним 11/10/20 Вск 17:46:48 2307455081
image.png 57Кб, 938x625
938x625
Сап, б. Решаю задачки по программированию и вот что-то не могу допереть:
Есть два целых числа, которые уменьшаются на единицу одновременно, пока одно из них не станет равным нулю, нужно посчитать сколько раз будет такое, что одно из чисел будет делиться нацело на другое число.
Время выполнения сильно важно, ибо при любых входных данных программа должна выполняться менее, чем за 1 секунду.
Числа могут быть 1 <= x <= 10^9
Аноним 11/10/20 Вск 17:47:09 2307455392
Бамп
Аноним 11/10/20 Вск 17:47:26 2307455543
Бамп
Аноним 11/10/20 Вск 17:47:52 2307455844
Бамп
Да нормально я постчу
Аноним 11/10/20 Вск 17:48:11 2307456035
Бамп петухоновый
Аноним 11/10/20 Вск 17:48:38 2307456306
Бамп программистский
Аноним 11/10/20 Вск 17:48:56 2307456477
Бамп ебланистический
Аноним 11/10/20 Вск 17:49:14 2307456738
>>230745508 (OP)
Начни с онлайн-курсов арифметики, они бесплатны, если оч понравится — задонатишь им сто рублей
Аноним 11/10/20 Вск 17:49:18 2307456799
Бамп алгоритмический
Аноним 11/10/20 Вск 17:49:40 23074570310
Аноним 11/10/20 Вск 17:49:56 23074571911
Бамп бесплатный
Аноним 11/10/20 Вск 17:50:12 23074573812
Бамп бампецкий
Аноним 11/10/20 Вск 17:50:31 23074575613
Бамп структурный
11/10/20 Вск 17:50:56 23074578114
>>230745719
Че ты бампаешь, дегенерат? Тебе же уже написали выше, что для начала нужно хотя бы арифметику выучить.
Аноним 11/10/20 Вск 17:51:05 23074579615
Бамп озадаченный
Аноним 11/10/20 Вск 17:51:35 23074583116
>>230745781
ну раз такой умный, то подскажи, чего уж
Аноним 11/10/20 Вск 17:51:54 23074585217
Бамп
Аноним 11/10/20 Вск 17:52:09 23074587318
Ну, раз важно быстродействие, то по-любому всё надо сделать в один цикл
Аноним 11/10/20 Вск 17:52:12 23074587619
Бамп
Аноним 11/10/20 Вск 17:52:51 23074591620
>>230745873
В один цикл (до меньшего числа) - слишком медленно
Аноним 11/10/20 Вск 17:53:27 23074596421
>>230745873
Важно же не кол-во циклов, а сложность алгоритма.
Аноним 11/10/20 Вск 17:53:29 23074596622
11/10/20 Вск 17:53:31 23074597123
>>230745831
Я ошибся, тебе не начала школьной программы нужны, а лоботомия. Тебе это никак уже не поможет, но хотя бы буянить и срать говнотредами перестанешь.
Аноним 11/10/20 Вск 17:53:44 23074599224
>>230745508 (OP)
Ну и в чем проблема? В первой итерации цикла проверяешь, какое число больше, его потом целочисленно делишь на другое, если получается 0, то счётчик +1. Если оба числа равны, то счётчик можно сразу ставить равным им, ибо число на само себя всегда нацело делится.
> должна выполняться менее чем за 1 секунду
> 10^9
Если оба числа будут хотя бы близки к этому самому миллиарду, то за секунду это тебе даже суперкудахтер не посчитает
Аноним 11/10/20 Вск 17:54:14 23074602225
>>230745916
А как ты меньше чем за 1 цикл будешь уменьшать числа по единице?
Аноним 11/10/20 Вск 17:54:32 23074604226
>>230745992
Как я уже писал выше - так слишком медленно
Аноним 11/10/20 Вск 17:55:12 23074609127
>>230746022
Должно быть решение явно меньше чем O(n)
11/10/20 Вск 17:55:45 23074612228
>>230745992
Мне интересно нахуй вы пишите это? Ты ж блять вряд ли студент даже, ты вообще в теме не шаришь. Но зачем-то приходишь в унылый тред с лабами и строчишь этот бесполезный пост. Зачем?
Аноним 11/10/20 Вск 17:56:41 23074619329
>>230746091
Что должно мне похую. У тебя скажем есть n=10
как ты меньше чем за 10 итераций получишь из него 0? Только если сразу сделаешь 10 - 10, но в условии сказано, что именно по единице отнимается
Аноним 11/10/20 Вск 17:58:04 23074627730
Аноним 11/10/20 Вск 17:58:10 23074628431
>>230746042
Ну без цикла тут никак не обойдёшься. Можно попробовать параллельное погромирование, если у тебя цопэ многоядерный что в 2к20 наверняка так. Гугли OpenMP или MPI, но это на крестах, на питоне хз есть ли аналоги. И опять же сомневаюсь что даже так удастся уложиться в секунду, ибо диапазон значений слишком большой. Вот если бы хотя бы одно из чисел было бы хотя бы до 100 миллионов, то думаю за секунду затащилось
Аноним 11/10/20 Вск 17:58:26 23074629932
>>230746193
Еще один гений алгоритмической мысли.
В цикле могут быть условия, за счет которых ты будешь пропускать итерации например
11/10/20 Вск 17:58:44 23074631833
>>230746193
О, вижу эксперта в треде. Вы такой молодец. Из тысячи двести будете тоже в цикле вычитать из восьмиста итераций?
11/10/20 Вск 18:00:12 23074640034
>>230746284
Пиздец ты еблан, ты ж просто нулевой.
А по теме, нахуй писать на мпи в питоне в циклической задаче? Ну хотя че я хочу, ты ж в теме не разбираешься.
Аноним 11/10/20 Вск 18:00:54 23074644535
>>230746299
>>230746318
>которые уменьшаются на единицу одновременно, пока одно из них не станет равным нулю
которые уменьшаются на единицу одновременно
НА ЕДИНИЦУ

Если ты пропустишь итерацию, то по итогу у тебя число будет 1, пропустишь две итерации, будет 2 и т.д.
Аноним 11/10/20 Вск 18:01:18 23074647936
>>230745508 (OP)
Ну смотри
Есть x,y
Есть переменная N, считающая РАЗЫ
Есть цикл, уменьшающий x,y на 1
Тебе нужно:
До цикла определить, что на что делить. Можно задать новые переменные, например - "If x>y: x,y = max,min Else: x,y = min,max"
Дальше при каждой итерации производить операцию "If max%min ==0: N+=1"
Ну и не забыть про ситуацию, когда x=y.
Мимо давно не прогер.
Аноним 11/10/20 Вск 18:01:26 23074648637
Ну в лоб вот так решил

const calculate = (a, b) => {
let newA = a;
let newB = b;
let result = 0;
while (true) {
if (newA === 0 || newB === 0) {
return result;
}
if (a % b === 0 || b % a === 0) {
result++;
}
newA--;
newB--;
}
};
Аноним 11/10/20 Вск 18:01:30 23074649038
>>230746445
ГЕНИЙ.
А вычитать сразу 2 перед пропуском никак нельзя?
Аноним 11/10/20 Вск 18:02:11 23074652739
>>230746490
Тогда одновременно числа уменьшатся на ДВА, сука тупой ты даун
11/10/20 Вск 18:02:13 23074652940
>>230746400
> нахуй писать на мпи
> в циклической задаче
А, так это троллеркоастер а не тред, как же я сразу не догадался. Сажаскрыл, тебе рака очка
11/10/20 Вск 18:02:42 23074657841
>>230746445
Ага. А еще небо голубое большую часть времени.
Че сказать то хотел?
Аноним 11/10/20 Вск 18:03:12 23074660642
Аноним 11/10/20 Вск 18:03:14 23074661243
11/10/20 Вск 18:03:39 23074665344
>>230746479
>Мимо давно не прогер.
Ну мы видим. А в унылый тред со своим дебильным решением прибежал. Тут же за 30 постов до тебя никто не догадался до такого, слава богу ты пришел, рачина.
11/10/20 Вск 18:04:29 23074670245
>>230746529
Я не оп и я пишу с сажей.
И свои вопросы я задал абсолютно серьезно, ты глупость какую-то высрал.
Аноним 11/10/20 Вск 18:04:40 23074671746
>>230746527
Прочитай внимательно еще раз ОП-хуй-пост.
Там ничего не сказано о том, что только в каждой ИТЕРАЦИИ должна вычитаться единица.
Там сказано только то, что они уменьшаются одновременно
11/10/20 Вск 18:04:56 23074673347
Аноним 11/10/20 Вск 18:05:12 23074674648
902da374e0452ff[...].gif 2324Кб, 720x480
720x480
>>230745508 (OP)
Даю наводку: разность этих 2 чисел - константа. А дальше стоит поработать мозгом, а если не выходит, то идти учить арифметику основы теории чисел и делимости
Аноним # OP 11/10/20 Вск 18:05:53 23074679249
>>230746606
Да, пожалуй, дальше будут ставить метку
11/10/20 Вск 18:06:27 23074684250
>>230746746
Я ему уже советовал выше, этот еблан не хочет ничего слушать.
Аноним 11/10/20 Вск 18:07:05 23074688651
>>230746746
Понятно, задача чисто математическая к погромированию не относится
Аноним 11/10/20 Вск 18:07:27 23074690552
>>230746717
Да, про итерации ничего. Но указано, что уменьшаются только на ЕДИНИЦУ одновременно. Неужели это настолько неочевидно, я хуею
11/10/20 Вск 18:08:20 23074697553
>>230746886
Ты себя не успокаивай, задача на примитивнейшую матешу, я, например, в работе использую вышмат куда серьезнее, так что пока не выучишь нормально математику, на работу тебя не возьмут.
Аноним 11/10/20 Вск 18:08:40 23074699754
69f36150f60ec67[...].jpg 73Кб, 1920x1080
1920x1080
>>230746886
Если для тебя задача уровня 2+2*2 слишком математическая и к погромированию не относится, то ты не относишься к человеку разумному
Аноним 11/10/20 Вск 18:09:06 23074702355
>>230745508 (OP)
Либо работай с разностью двух чисел (константа же), либо с квадратным корнем большего числа. И так и так должно получиться быстро.
Аноним 11/10/20 Вск 18:09:43 23074707556
>>230746975
Я уже за 200к работаю фронтендером нахуй ненужна твоя матеша.
Джейсоны надо в дивы оборачивать
Аноним 11/10/20 Вск 18:10:12 23074710957
3a7.jpg 260Кб, 800x800
800x800
Аноним 11/10/20 Вск 18:10:49 23074715158
>>230746997
Ты троль, никто не знает такую математику, даже загуглить не смог причем тут разность константа и какое это ваще отношение имеет к делимости чисел друг на друга.
Аноним 11/10/20 Вск 18:10:53 23074715859
9d3e59c0d364bb0[...].jpg 695Кб, 1920x1080
1920x1080
11/10/20 Вск 18:10:54 23074716160
Аноним 11/10/20 Вск 18:11:12 23074718761
Можно линк на задачку, хочу засабмитить свою писанину
Аноним 11/10/20 Вск 18:11:34 23074720862
15589374540220.jpg 89Кб, 474x528
474x528
>>230747151
>Ты троль, никто не знает такую математику, даже загуглить не смог причем тут разность константа и какое это ваще отношение имеет к делимости чисел друг на друга.
Аноним 11/10/20 Вск 18:11:41 23074721763
>>230746975
> на примитивнейшую матешу
Именно поэтому ты только визжишь с сагой и брызжишь ядом на весь тред, вместо того чтобы рассказать, как же эта примитивнейшая задача решается?
Аноним 11/10/20 Вск 18:12:07 23074725064
>>230745508 (OP)
>два целых числа
Примем наименьшее как a, большее - как b. d = b-a.
Тогда имеем два ряда A = (0..a) и B = A+d.
Тогда очевидно, что чтобы член из ряда A был частным от соотв. ряда B - член из B должен быть больше или равен чем соотв. член А. Поэтому если ты и собрался проверять циклом то проверять имеет смысл только в A=(0..MIN(a,d)). Когда текущее число из ряда A > d то условие целочисленного деления (Ax+d)/Ax никогда не будет выполняться.
Аноним 11/10/20 Вск 18:13:19 23074732365
>>230747161
Пруф за щекой поищи................
Аноним 11/10/20 Вск 18:14:24 23074738866
>>230747250
>и собрался проверять циклом то проверять имеет смысл только в A=(0..MIN(a,d)).
А теперь давай подумаем, пройдя по этому циклу и уменьшая числа по единице, одно из них станет нулём?))))))))))
11/10/20 Вск 18:16:03 23074751767
>>230745508 (OP)
Жирная зелень забайтила на срач, а тупые постаноны его кормят весь тред. Картина маслом
Аноним # OP 11/10/20 Вск 18:16:27 23074754668
Сижу, наблюдаю со стороны на троллей тупостью
Аноним 11/10/20 Вск 18:17:11 23074760169
>>230747388
>пройдя по этому циклу и уменьшая числа по единице, одно из них станет нулём?))))))))))
Скобкодаун, хули ты там уменьшать собрался свои циклом, ммм?
Я тебе расписал два связанных числовых ряда а ты дауненок все никак уменьшать по единице не перестанешь.
Аноним 11/10/20 Вск 18:17:40 23074762970
Аноним 11/10/20 Вск 18:18:12 23074767171
Аноним # OP 11/10/20 Вск 18:18:24 23074768872
>>230747629
Линка не имеется, ибо задачку выдали в устном виде
Аноним 11/10/20 Вск 18:18:51 23074771873
ЭТА ЗАДАЧА НЕ РЕШАЕТСЯ МАТЕМАТИЧЕСКИ
Пруф ми вронг
Аноним 11/10/20 Вск 18:19:06 23074773874
>>230747629
Братан, не так все просто, офер горит, роадмап мутный, коуч сказал что на мое место много реплаев, поэтому показать не могу
Аноним 11/10/20 Вск 18:19:45 23074778575
>>230747601
Потому что если этого не делать, то очевидно число не будет нулём и это уже совсем другая история, не касающаяся задачи итт.
Аноним 11/10/20 Вск 18:21:13 23074790076
Давайте проясним раз и навсегда.
ЕСЛИ надо уменьшать числа по единице одновременно, пока одно из них не станет нулём, то решение только одно и оно O(n)
ЕСЛИ это не нужно делать, тогда O(1).
Аноним 11/10/20 Вск 18:21:41 23074793477
>>230747738
Надо срочно проводить тимбилдинг ИТТ. А то что-то коворкинг не задался
Аноним 11/10/20 Вск 18:21:57 23074795678
Аноним 11/10/20 Вск 18:22:01 23074796279
>>230747785
>очевидно число не будет нулём
Какое, блядь, число не будет нулем? Ты сейчас придрался что в условии числа >=1 а у меня ряды с нуля начинаются? Ну хуй с тобой, пусть с 1 начинаются, это ничего не меняет.
Аноним 11/10/20 Вск 18:23:32 23074806380
>>230747956
За O(sqrt(n)) у меня получилось с небольшими багами.
Аноним 11/10/20 Вск 18:24:47 23074815981
>>230747934
Прямо сейчас созвонился с коучем, он дал выход на мамку ОПа. Сейчас еду на тимбилдинг с ней в антикафе. Посоветуйте годный саундтрек под этот кейс
Аноним 11/10/20 Вск 18:25:11 23074818982
>>230748063
>с небольшими багами

Так это и не решение вовсе тогда.
Аноним 11/10/20 Вск 18:25:26 23074820483
>>230747785
Ты долбоеб. У тебя задача найти количество таких пар, хуйня про итерации дана для наглядности потому что про ряды ты нихуя не знаешь. Итерации твои мудацкие не касаются решения, максимум пользы от них это промоделировать на листочке и найти закономерности, зависящие от разности чисел как тебе уже написали
Аноним 11/10/20 Вск 18:25:53 23074823484
>>230748189
Это решение, которое проходит не все группы тестов.
Аноним 11/10/20 Вск 18:27:15 23074832285
>>230748159
Элджей + морген, треки по вкусу выбирай. Эти сонгеры всегда настраивают меня на тимбилдинг
Аноним 11/10/20 Вск 18:27:44 23074836286
>>230748234
Сейчас я буду считать сколько фаллических предметов проходят в твою жопу, судя по тому что у меня есть, не все из них пройдут
Аноним 11/10/20 Вск 18:30:07 23074852387
>>230745508 (OP)
Если числа слишком большие, скажем, больше ляма каждое, то перед циклом делишь их на 1000, только потом считаешь счётчиком. В конце счётчик умираешь на тысячу, вот тебе и ответ.
/thread
Аноним 11/10/20 Вск 18:31:05 23074858588
>>230748204
вот уже условие меняется, так пиндосы и проталкивают хуйню про большие взрывы и т.д
Аноним 11/10/20 Вск 18:32:26 23074868189
Аноним 11/10/20 Вск 18:32:33 23074868990
Аноним 11/10/20 Вск 18:33:24 23074874991
1602430403525.png 572Кб, 1077x1077
1077x1077
Аноним 11/10/20 Вск 18:34:28 23074882292
15917271060500.jpg 31Кб, 500x600
500x600
>>230748523
>Если числа слишком большие, скажем, больше ляма каждое, то перед циклом делишь их на 1000, только потом считаешь счётчиком. В конце счётчик умираешь на тысячу, вот тебе и ответ.
>/thread
Аноним 11/10/20 Вск 18:34:38 23074883393
Путин пыня Навальный +15 пидораха пидорашки хуйло Крым Донбасс
Аноним 11/10/20 Вск 18:34:57 23074886394
Путин пыня Навальный +15 пидораха пидорашки хуйло Крым Донбасс
Аноним 11/10/20 Вск 18:35:13 23074888395
Путин пыня Навальный +15 пидораха пидорашки хуйло Крым Донбасс
11/10/20 Вск 18:35:21 23074889296
>>230747217
Да, именно поэтому.
Ты, видимо, в силу своей тупости, не понимаешь чего я хочу и мои мотивы.
Я хочу: интересные треды с умными людьми
Я не хочу: неинтересные треды с лабами, которые создал идиот
Поэтому я всячески саботирую все, что мне нравится.
Аноним 11/10/20 Вск 18:35:53 23074893197
Путин пыня Навальный +15 пидораха пидорашки хуйло Крым Донбасс
Аноним 11/10/20 Вск 18:36:09 23074894598
Путин пыня Навальный +15 пидораха пидорашки хуйло Крым Донбасс
Аноним 11/10/20 Вск 18:36:47 23074897999
15950871608580.mp4 8454Кб, 632x354, 00:01:45
632x354
всем встать
слушаем гимн хохлов
Аноним 11/10/20 Вск 18:37:07 230749003100
Пятая колонна террорист экстремист стабильность Путин Крым Донбасс
Аноним 11/10/20 Вск 18:37:23 230749024101
Пятая колонна террорист экстремист стабильность Путин Крым Донбасс
Аноним 11/10/20 Вск 18:37:24 230749026102
>>230748892
>>230747217
Да, именно поэтому пидораха крым
Ты, видимо, в силу своей тупости пыня хуйло, не понимаешь чего я хочу и мои Крым Навальный мотивы.
Я хочу: интересные Крым Навальный Донбасс пидорашки треды с умными людьми
Я не хочу: Пыня хуйло +15 неинтересные треды с лабами, которые создал идиот
Поэтому я всячески саботирую все, что мне нравится.
Аноним 11/10/20 Вск 18:37:51 230749060103
>овер 200 постов
>ни одного решения на ideone
Аноним 11/10/20 Вск 18:38:31 230749106104
Аноним 11/10/20 Вск 18:38:37 230749114105
> Навальный
> Не отравлен
Аноним 11/10/20 Вск 18:38:58 230749131106
Пятая колонна террорист экстремист стабильность Путин Крым Донбасс
Аноним 11/10/20 Вск 18:39:38 230749164107
2ch.png 14Кб, 782x432
782x432
Это же даунская задача
ОП с тебя пиздатая webm за то что я потратил 30 секунд своего времени.
Аноним 11/10/20 Вск 18:40:06 230749201108
15992421406653.mp4 2388Кб, 854x480, 00:00:19
854x480
Аноним 11/10/20 Вск 18:40:11 230749204109
>>230745508 (OP)
Сап, б. Решаю задачки по Пыня Донбасс хохлы и вот что-то не могу допереть:
Есть два Навальный числа, которые уменьшаются на единицу одновременно Крым, пока одно из них не станет равным нулю Донбасс, нужно посчитать сколько раз будет такое, что одно из чисел будет делиться нацело на другое число.
Время выполнения сильно пидораха, ибо при любых входных данных долбильня лахты должна выполняться менее, чем за 1 секунду.
Числа могут быть +15
Аноним 11/10/20 Вск 18:40:44 230749233110
>>230749164
Писал же, что O(n) не прокатит, нужно меньше
Аноним 11/10/20 Вск 18:40:55 230749249111
>>230749164
> while n1 > 0 and n2 > 0:
измени на это, я неправильно условие прочёл
while n1 > 0 or n2 > 0:
Аноним 11/10/20 Вск 18:41:14 230749273112
15900918729030.png 558Кб, 467x700
467x700
>>230749164
> Это же даунская задача
> ОП с тебя пиздатая webm за то что я потратил 30 секунд своего времени.
Аноним 11/10/20 Вск 18:41:27 230749285113
>>230749233
Опять ОП-метка отклеилась
Аноним 11/10/20 Вск 18:41:30 230749288114
1602430889898.png 112Кб, 403x449
403x449
>>230749204
> Сап, б. Решаю задачки по Пыня Донбасс хохлы и вот что-то не могу допереть:
> Есть два Навальный числа, которые уменьшаются на единицу одновременно Крым, пока одно из них не станет равным нулю Донбасс, нужно посчитать сколько раз будет такое, что одно из чисел будет делиться нацело на другое число.
> Время выполнения сильно пидораха, ибо при любых входных данных долбильня лахты должна выполняться менее, чем за 1 секунду.
> Числа могут быть +15
Аноним 11/10/20 Вск 18:41:31 230749289115
>>230749233
>O(n)
в душе не ебу что это, давай по русски
Аноним 11/10/20 Вск 18:41:47 230749307116
15890963227240.jpg 477Кб, 990x1045
990x1045
>>230749249
> > while n1 > 0 and n2 > 0:
> измени на это, я неправильно условие прочёл
> while n1 > 0 or n2 > 0:
Аноним 11/10/20 Вск 18:42:07 230749324117
1602430926391.jpg 469Кб, 900x599
900x599
>>230749026
> Да, именно поэтому пидораха крым
> Ты, видимо, в силу своей тупости пыня хуйло, не понимаешь чего я хочу и мои Крым Навальный мотивы.
> Я хочу: интересные Крым Навальный Донбасс пидорашки треды с умными людьми
> Я не хочу: Пыня хуйло +15 неинтересные треды с лабами, которые создал идиот
> Поэтому я всячески саботирую все, что мне нравится.
Аноним 11/10/20 Вск 18:42:28 230749342118
одобрено для 2c[...].jpg 55Кб, 1200x918
1200x918
>>230747900
> Давайте проясним раз и навсегда.
> ЕСЛИ надо уменьшать числа по единице одновременно, пока одно из них не станет нулём, то решение только одно и оно O(n)
> ЕСЛИ это не нужно делать, тогда O(1).
Аноним 11/10/20 Вск 18:42:39 230749361119
>>230749289
Временная сложность будет линейно возрастать в зависимости от входных данных
Аноним 11/10/20 Вск 18:42:51 230749373120
15839454936130.jpg 61Кб, 556x556
556x556
>>230746479
> Ну смотри
> Есть x,y
> Есть переменная N, считающая РАЗЫ
> Есть цикл, уменьшающий x,y на 1
> Тебе нужно:
> До цикла определить, что на что делить. Можно задать новые переменные, например - "If x>y: x,y = max,min Else: x,y = min,max"
> Дальше при каждой итерации производить операцию "If max%min ==0: N+=1"
> Ну и не забыть про ситуацию, когда x=y.
> Мимо давно не прогер.
Аноним 11/10/20 Вск 18:43:06 230749388121
>>230749233
Меньше чем O(n) решить невозможно
Аноним 11/10/20 Вск 18:43:07 230749389122
15860941689351.jpg 70Кб, 680x1000
680x1000
>>230745873
> Ну, раз важно быстродействие, то по-любому всё надо сделать в один цикл
Аноним # OP 11/10/20 Вск 18:43:11 230749394123
>>230749361
Да почему она отваливается?
Аноним 11/10/20 Вск 18:43:24 230749411124
1597655330541.png 97Кб, 419x382
419x382
>>230746318
> О, вижу эксперта в треде. Вы такой молодец. Из тысячи двести будете тоже в цикле вычитать из восьмиста итераций?
Аноним 11/10/20 Вск 18:43:42 230749429125
15414764307220.png 369Кб, 727x967
727x967
>>230746400
> Пиздец ты еблан, ты ж просто нулевой.
> А по теме, нахуй писать на мпи в питоне в циклической задаче? Ну хотя че я хочу, ты ж в теме не разбираешься.
Аноним 11/10/20 Вск 18:43:48 230749441126
15596617113300.jpg 46Кб, 453x604
453x604
>>230749388
>Меньше чем O(n) решить невозможно
Аноним 11/10/20 Вск 18:44:00 230749454127
15408156814410.png 281Кб, 500x343
500x343
>>230746746
> Даю наводку: разность этих 2 чисел - константа. А дальше стоит поработать мозгом, а если не выходит, то идти учить арифметику основы теории чисел и делимости
Аноним 11/10/20 Вск 18:44:10 230749473128
Аноним 11/10/20 Вск 18:44:17 230749487129
15771917282780.jpg 39Кб, 434x374
434x374
>>230747023
> Либо работай с разностью двух чисел (константа же), либо с квадратным корнем большего числа. И так и так должно получиться быстро.
Аноним 11/10/20 Вск 18:44:19 230749493130
>>230746299
лол
цикл это цикл, хоть ты одну итерацию в нем делай сложность у него всеравно O(n)
Аноним # OP 11/10/20 Вск 18:44:25 230749498131
>>230749388
Человек который дал задачу уже решил, но крысит ответ
Аноним 11/10/20 Вск 18:44:37 230749514132
15818947059780.jpg 172Кб, 633x521
633x521
>>230749493
> лол
> цикл это цикл, хоть ты одну итерацию в нем делай сложность у него всеравно O(n)
Аноним 11/10/20 Вск 18:44:57 230749537133
1581510830759.png 204Кб, 403x412
403x412
>>230746792
> Да, пожалуй, дальше будут ставить метку
Аноним 11/10/20 Вск 18:45:14 230749556134
15729842983620.jpg 216Кб, 800x531
800x531
>>230746445
> >которые уменьшаются на единицу одновременно, пока одно из них не станет равным нулю
> которые уменьшаются на единицу одновременно
> НА ЕДИНИЦУ

> Если ты пропустишь итерацию, то по итогу у тебя число будет 1, пропустишь две итерации, будет 2 и т.д.
Аноним 11/10/20 Вск 18:45:20 230749562135
fvZIThpLLzA.jpg 169Кб, 563x690
563x690
Мне кажется ОП просто придумал нерешаемую задачку и троллит двач, ибо за 125 постов ни одного решения, хотя по слухам на дваче много 300кк/нанонек погромистов
Аноним 11/10/20 Вск 18:45:34 230749571136
Без названия (6).jpg 9Кб, 253x199
253x199
>>230745992
> Ну и в чем проблема? В первой итерации цикла проверяешь, какое число больше, его потом целочисленно делишь на другое, если получается 0, то счётчик +1. Если оба числа равны, то счётчик можно сразу ставить равным им, ибо число на само себя всегда нацело делится.
> > должна выполняться менее чем за 1 секунду
> > 10^9
> Если оба числа будут хотя бы близки к этому самому миллиарду, то за секунду это тебе даже суперкудахтер не посчитает
Аноним 11/10/20 Вск 18:45:50 230749590137
image-3.png 69Кб, 225x225
225x225
>>230749562
> Мне кажется ОП просто придумал нерешаемую задачку и троллит двач, ибо за 125 постов ни одного решения, хотя по слухам на дваче много 300кк/нанонек погромистов
Аноним 11/10/20 Вск 18:46:02 230749600138
Полон тред жира. Вот тебе ответ ОП, я сегодня добрый. Пусть минимальное число - a. Тогда большее число a + c (c - константа). Тогда условие задачи записывается как ak = a + c (k - какое то целое число), таким образом a(k-1) = c и a = c/(k-1). Тебе нужно c разложить на простые множители и в итоге число уникальных простых множителей будет ответом.
Аноним 11/10/20 Вск 18:46:09 230749605139
15571271555440.jpg 60Кб, 432x604
432x604
Аноним 11/10/20 Вск 18:46:40 230749638140
1602431198748.jpg 321Кб, 1199x1226
1199x1226
>>230747250
> >два целых числа
> Примем наименьшее как a, большее - как b. d = b-a.
> Тогда имеем два ряда A = (0..a) и B = A+d.
> Тогда очевидно, что чтобы член из ряда A был частным от соотв. ряда B - член из B должен быть больше или равен чем соотв. член А. Поэтому если ты и собрался проверять циклом то проверять имеет смысл только в A=(0..MIN(a,d)). Когда текущее число из ряда A > d то условие целочисленного деления (Ax+d)/Ax никогда не будет выполняться.
Аноним # OP 11/10/20 Вск 18:46:48 230749647141
>>230749493
Ну ты гений
Если у тебя будет на вход массив из N элементов, то при том, что цикл выполняется, например, 100 раз, то это будет O(1), т.е. входные данные не влияют на время выполнения.
Если будешь проходить в цикле по каждому элементу массива (т.е. будет N итераций), то сложность будет O(n)
Если совсем примитивно объяснять
Аноним 11/10/20 Вск 18:47:13 230749675142
>>230745508 (OP)
>>230747250
>Примем наименьшее как a, большее - как b. d = b-a.
>Тогда имеем два ряда A = (0..a) и B = A+d.
Тогда суть задачи сводится к следующему - сколько в ряду А чисел таких, которые при делении d на An дадут частное без остатка.
Тогда если это частное принять как x то An=d/x, а Bn=An+d=d/x+d а условие деления без остатка всегда будет выполняться - Bn/An = (d/x+d)/(d/x)=x(d/x+d)/d = d+xd/d = 1+x.
Поскольку ряд начинается с единицы - что мешает просто разделить d на a и округлить вниз? Ведь каким бы не были d и a - в ряду от 1 до a будет ровно floor(d/a) чисел которые делятся ровно, разве нет?
Аноним 11/10/20 Вск 18:48:00 230749738143
разложение на множители
/тред
Аноним 11/10/20 Вск 18:48:01 230749740144
15732364928070.png 381Кб, 631x437
631x437
>>230749647
> Ну ты гений
> Если у тебя будет на вход массив из N элементов, то при том, что цикл выполняется, например, 100 раз, то это будет O(1), т.е. входные данные не влияют на время выполнения.
> Если будешь проходить в цикле по каждому элементу массива (т.е. будет N итераций), то сложность будет O(n)
> Если совсем примитивно объяснять
Аноним 11/10/20 Вск 18:48:13 230749754145
>>230749473
>>230749498
уже решил, но крысит ответ

Скорее всего у него также O(n)
n умноженная на любую константу это O(n)
Хоть у него и n/2 итераций, хоть n/4 это O(n) если ты не знал
Аноним 11/10/20 Вск 18:48:19 230749758146
15661280436430.png 588Кб, 700x525
700x525
>>230749675
> >Примем наименьшее как a, большее - как b. d = b-a.
> >Тогда имеем два ряда A = (0..a) и B = A+d.
> Тогда суть задачи сводится к следующему - сколько в ряду А чисел таких, которые при делении d на An дадут частное без остатка.
> Тогда если это частное принять как x то An=d/x, а Bn=An+d=d/x+d а условие деления без остатка всегда будет выполняться - Bn/An = (d/x+d)/(d/x)=x(d/x+d)/d = d+xd/d = 1+x.
> Поскольку ряд начинается с единицы - что мешает просто разделить d на a и округлить вниз? Ведь каким бы не были d и a - в ряду от 1 до a будет ровно floor(d/a) чисел которые делятся ровно, разве нет?
Аноним 11/10/20 Вск 18:48:43 230749779147
15568555970570.jpg 30Кб, 511x405
511x405
>>230749754
> уже решил, но крысит ответ

> Скорее всего у него также O(n)
> n умноженная на любую константу это O(n)
> Хоть у него и n/2 итераций, хоть n/4 это O(n) если ты не знал
Аноним 11/10/20 Вск 18:49:19 230749818148
Аноним # OP 11/10/20 Вск 18:49:40 230749842149
>>230749754
Знал естественно, но у него все нормально проходит по времени
Аноним 11/10/20 Вск 18:51:20 230749953150
>>230749647
блч сори, чет отупел с двачем этим)
Аноним 11/10/20 Вск 18:52:08 230750005151
>>230749675
a = 6
b = 10
d = b - a = 10 - 6 = 4
d / a = 4 / 6 = 0.6(6), округляем вниз = 0
охуенно ты решил братух
Аноним 11/10/20 Вск 18:56:41 230750305152
image.png 34Кб, 435x413
435x413
Вроде работает.
Аноним 11/10/20 Вск 19:01:04 230750597153
>>230750305
Фикс:
if (d == 1) return 1; можно убрать.
Аноним 11/10/20 Вск 19:05:46 230750897154
Вот шо придумал.
Как уже заметили то разница постоянна.
И большее число всегда будет разница + итератор
а меньшее просто итератор.
Успех когда большее делится на меньшее.
Вот допустим числа a b их разница b-a
нужно узнать сколько раз b-a + i
будет делиться на i
По свойству делимости это будет делиться когда b-a делится на i.
Те задача теперь звучит так: сколько делителей у числа b-a. Зная число простых делителей и количество каждого простого в разложении легко будет найти ответ. Итого нам надо найти разложение на простые множители. Простые числа на ходу считать не будем, а на считаем до выполнения основной программы и занесём в табличку. Теперь пиздохаем по табличке простых чисел и проверяем на делимость число b-a. Верхняя граница в этом цикле будет корень из b-a ибо максимум это два простых множителя одинаковых.
Аноним 11/10/20 Вск 19:07:20 230751015155
>>230750597
не убрать, а поставить перед вычислением корня, чтобы избежать вызова функции и инициализации других переменных
Аноним 11/10/20 Вск 19:10:01 230751198156
>>230750897
Простые числа тут не нужны.
Я вот как решил:
Пусть a - меньшее, b - большее;
Выделяем частный случай a = b, ответ будет равен a или b;
d = b - a
Ответом будут являться все делители числа d, которые меньше либо равны a.
Аноним 11/10/20 Вск 19:11:28 230751290157
>>230751198
Фикс: не сами делители, а их количество.
Аноним 11/10/20 Вск 19:12:38 230751379158
>>230751198
Я вот и предложил способ найти все делители числа d. Просто способом похитрее, через простые числа. А не пробой всех чисел меньше а.
Аноним 11/10/20 Вск 19:14:52 230751561159
>>230751198

Этот прав, сейчас сам прикинул. Нужно количество всех делителей разности данных чисел. Со скидкой на случаи, когда меньшее число меньше чем разность.
Аноним 11/10/20 Вск 19:19:23 230751873160
while (a == 0 .or. b == 0){
if (a % b == 0 .or. b % a == 0) d++
a++
b++
}
Аноним 11/10/20 Вск 19:19:37 230751880161
Аноним 11/10/20 Вск 19:20:42 230751960162
Аноним 11/10/20 Вск 19:21:34 230752012163
>>230751880
Зачем О(1)? O(sqrt(n)) вполне подходит.
Аноним 11/10/20 Вск 19:21:55 230752033164
>>230750305
Количество итераций корень из d.
>>230750897
Количество итераций это количество простых чисел до корня из d.

Так шо через простые числа лучше кмк, но надо делить на простое тк оно может входить в разложение несколько раз.
А в первом способе шаг можно сделать не cnt++ а cnt+=2 после проверки на чётность.
Аноним 11/10/20 Вск 19:24:18 230752190165
Нужен cuda программист, чтобы всех под шконку загнал.
Аноним 11/10/20 Вск 19:26:43 230752345166
>>230752012

Ну да, подойдет, ОП просто выше О(1) вроде хотел
Аноним 11/10/20 Вск 19:27:46 230752427167
>>230745508 (OP)

Спасибо за задачку ОП, засабмичу ее куда надо
Аноним 11/10/20 Вск 19:29:20 230752541168
>>230746318
да питонисты, похоже, все такие
в одном из прошлых тредов такой же еблан рассказывал, что он и сумму арифметической прогрессии будет считать в цикле, потому что у него больше времени уйдет на то, чтобы "лезть в математику", чем на то, чтобы наебенить цикл.
Аноним 11/10/20 Вск 19:32:55 230752751169
>>230752541
А где считать, в рекурсии, что ли? Ты из нулевых вылез? Пиздец еблан.
Аноним 11/10/20 Вск 19:33:54 230752817170
Аноним 11/10/20 Вск 19:34:28 230752852171
>>230752751
Ну тут без выделенного облака и kubernetes не разобраться.
Аноним 11/10/20 Вск 19:34:40 230752863172
>>230752817
В жопе твоей мамаши иногда бывает толсто, даун.
Аноним 11/10/20 Вск 19:44:31 230753505173
По времени кто нибудь тестировал?
Аноним 11/10/20 Вск 19:59:31 230754525174
Задача хуйня и никак не обучает программированию, это математика.

С точки зрения программирования задача на уровне fuzzbuzz
Аноним 11/10/20 Вск 20:09:13 230755146175
Как быть, Двач?

На одном стуле «ряяяя это не программирование, это математика»
На другом высчитывание суммы арифметической прогрессии через цикл

На какой присаживаться?
Аноним 11/10/20 Вск 20:24:33 230756142176
>>230745508 (OP)
Здесь скорее не по времени надо тестировать , а по количеству действий которое совершает алгоритм.
При таких ограничениях задача должна решаться за О(1) , то есть надо придумать формулу.
Аноним 11/10/20 Вск 20:24:45 230756153177
>>230755146
Но в реальной проге с числами вообще очень редко дело имеешь

Считай ряды объектов или операторов лол
Аноним 11/10/20 Вск 20:57:18 230758466178
Аноним 11/10/20 Вск 21:33:24 230761103179
15939858193470.png 114Кб, 386x367
386x367
>>230758466
> какие же все программисты тупые...
> в итоге всё ПО ужасно работает

> Это же элементарная задача, в которой нужно лишь посчитать количество делителей разницы заданных чисел
Аноним 11/10/20 Вск 21:59:54 230763174180
>>230761103
Похож, только у меня шея тоньше и длиннее.
Аноним 11/10/20 Вск 22:18:42 230764633181
>>230758466

От тебя очень воняет яйцами, сходи подмойся.
Аноним 11/10/20 Вск 22:20:55 230764801182
Реквестирую бота автопостера для двача.
есть годный фапконтент лень 3 часа сидеть это все выкладывать
Аноним 11/10/20 Вск 22:22:18 230764897183
>>230764801
Вишмастер же. Только ищи последнюю версию, старые с макабой не работают
Аноним 11/10/20 Вск 22:23:57 230765016184
image.png 515Кб, 764x1080
764x1080
Тред дебилов нахуй, ахахахха.

Челы предоставляю вам решение за O(1)

Даны на импут два числ, пусть a и b;
Не теряя общности скажем, что всегда a >= b;(иначе просто поменяем местами)

Тогда если разница a и b == 0, ответ само число a;

если разница a и b == 1; Эти числа всегда будут взаимнопростыми пока все не придет к случаю 2:1; Ответ 1;

в остальных случаях ответ 2;

Я в ахуе...




Аноним 11/10/20 Вск 22:27:28 230765267185
>>230765016
Чет быстро написал это работает только когда b > (a/2)
Аноним 11/10/20 Вск 22:29:14 230765401186
>>230765267
Ну да, в остальном надо городить проверку за корень(
Аноним 11/10/20 Вск 22:32:25 230765625187
>>230765401
Хотя если предпосчитать простые числа до sqrt(10^9). Можно выдавать ответ за константу
Аноним 11/10/20 Вск 22:37:01 230765971188
>>230745971
нахуй ты в тред зашел? иди маняме посмотри сын пьяницы.

другой анонеще раз иди нахуй
Аноним 11/10/20 Вск 22:44:37 230766466189
>>230758466
>Это же элементарная задача, в которой нужно лишь посчитать количество делителей разницы заданных чисел
Что если первое число будет 1, а второе 9_999_999_999?
Аноним 11/10/20 Вск 22:46:24 230766580190
Аноним 11/10/20 Вск 23:03:41 230767696191
Аноним 11/10/20 Вск 23:10:30 230768154192
1594391059831.jpg 90Кб, 716x540
716x540
>>230745508 (OP)
Почему питон настолько конченный что в нём нет ++ и свитч-кейса?
Аноним 11/10/20 Вск 23:31:06 230769468193
Настройки X
Ответить в тред X
15000
Макс объем: 20Mб, макс кол-во файлов: 4
Кликни/брось файл/ctrl-v
X
Ваш шидевор X
Стикеры X
Избранное / Топ тредов