Jump to content
  • Sign Up

(ne())

User
  • Content Count

    1,811
  • Joined

  • Last visited

  • Time Online

    34d 20h 25m 9s

1 Follower

About (ne())

  • Rank
    Godlike
  • Birthday 12/05/1994

Contact Methods

  • Skype
    neowka657

Profile Information

  • Gender
    Male

Recent Profile Visitors

3,862 profile views
  1. Ну да, это по условию задачи так. Крч нужно просто по индексам по человечески пройтись и все. Я изначально получается твою мысль не понял, но да, так не получится сделать. Я и думаю, а нафига эти строки хранить отдельно, для упрощения работы с индексами чтоль...А теперь понял что ты условие задачи не видел ;D Ну тогда для i1 - 1 проверку убрать, т.к. там оно также работает. Ну прочитай про range/xrange, в твоем случае просто можно: for i1 in range(len(a)): for j1 in range(len(a[i1])): print(i1, j1) С остатком от деления - это обычный способ перепрыгивать на начало если вышел за границу: a = [1, 2, 3] length = len(a) # length = 3 print(a[0 % length]) # print(a[0]) print(a[2 % length]) # print(a[2]) print(a[3 % length]) # print(a[0]) print(a[100502 % length]) # print(a[2]) print(a[-1 % length]) # print(a[2]) В твоей задаче просто укоротит код т.е. ифы будут не нужны вообще: # INPUT li = len(a) lj = len(a[0]) for i in xrange(li): for j in xrange(lj): s = a[(i+1)%li][j] s += a[i][j] s += a[i][(j+1)%lj] s += a[i][j-1] print(s, end = ' ') print() Кстати, а как лучше, как у тебя обозначать переменную lenght = len(a), а потом ее в принт вписывать как a[0 % lenght], или сразу писать a[0 % len(a)] ? Это наверно дольше выйдет, т.к. в каждое значение функция подставляетсЯ, дольше вычисляется и все такое? Просто я смотрю на решения из этого курса и все так и наровят сократить примерно до такого, типо код на 2 строчки короче выходит Показать больше для начала лучше бы ты уже выучил что пишется length а не lenght len complexity - O(1) метод просто возвращает переменную, и обычно "вызов метода" тоже очень простая операция По Мартину "Clean Code" всегда лучше вызывать метод напрямую (он там вызывает даже методы с вычислениями) по несколько раз в одной функции что бы уменьшить сложность самой функции. Меньше переменных, меньше состояний = меньше сложность. Особенно с названиями li, lj. Кстати перестань юзать переменную 'i' для foreach. Она используется для индексов как в примере сверху. ЛОЛШТО а вот это было неожиданно, с первого класса так писал, хоть кто бы сказал что не так :D т.е. все же a[0 % len(a)], если я все правильно сообразил? так, а если не юзать i без range, то как тогда перебрать сами элементы a, если я это вдруг хочу сделать? Или просто так не надо делать?
  2. Ну да, это по условию задачи так. Крч нужно просто по индексам по человечески пройтись и все. Я изначально получается твою мысль не понял, но да, так не получится сделать. Я и думаю, а нафига эти строки хранить отдельно, для упрощения работы с индексами чтоль...А теперь понял что ты условие задачи не видел ;D Ну тогда для i1 - 1 проверку убрать, т.к. там оно также работает. Ну прочитай про range/xrange, в твоем случае просто можно: for i1 in range(len(a)): for j1 in range(len(a[i1])): print(i1, j1) С остатком от деления - это обычный способ перепрыгивать на начало если вышел за границу: a = [1, 2, 3] length = len(a) # length = 3 print(a[0 % length]) # print(a[0]) print(a[2 % length]) # print(a[2]) print(a[3 % length]) # print(a[0]) print(a[100502 % length]) # print(a[2]) print(a[-1 % length]) # print(a[2]) В твоей задаче просто укоротит код т.е. ифы будут не нужны вообще: # INPUT li = len(a) lj = len(a[0]) for i in xrange(li): for j in xrange(lj): s = a[(i+1)%li][j] s += a[i][j] s += a[i][(j+1)%lj] s += a[i][j-1] print(s, end = ' ') print() Кстати, а как лучше, как у тебя обозначать переменную lenght = len(a), а потом ее в принт вписывать как a[0 % lenght], или сразу писать a[0 % len(a)] ? Это наверно дольше выйдет, т.к. в каждое значение функция подставляетсЯ, дольше вычисляется и все такое? Просто я смотрю на решения из этого курса и все так и наровят сократить примерно до такого, типо код на 2 строчки короче выходит
  3. Вроде всего 2 строки достаточно хранить. Первую, чтобы потом добавить к последней и ту которую только что обновлял, чтобы прибавить к следующей. Если сверху вниз идти. тут хуйня в том что первую строку никак не высрать пока последняя строка не известна так тут элементы сверху, снизу и слева справа прибавляются, соответственно чтоб посчитать сумму этих элементов нужно хранить строку выше, текущую, строку ниже. Ну так для первой итерации нужно взять строки len(a) - 1, 0, 1, потом 0,1,2, потом 1, 2, 3. Мы же все строки и так знаем, они изначально вводятся, их потом просто из списка брать. Ну либо забить хер и так же проходится по элементам, только грамотнее это реализовать.
  4. на питоне наверно разницы не будет или будет хуже после оптимизации в норм языках хз ну идея в том, что когда выпёрдываешь ответ в файл у тебя подгружаются всякие функции и файловые буферы в кеш, а потом снова возвращаешься в своей исходной матрице, короче нагрузка на кэш чрезмерная, на современных процах мб и похуй вторую матрицу естественно лучше не создавать, а просто пару строк временных создать для промежуточных вычислений и перезаписывать результат в исходную матрицу Ну вот и получается, что если вторую матрицу не создавать, а перезаписывать в первую, то тогда нужно минимум 4 строки хранить, т.к. перезаписывать текущую строку нельзя, она в подсчете следующей строки будет использоваться просто перезапись при следующей итерации осуществлять, а такой алгоритм реализуем конечно, но наверно уже сложноват для такой задачи, нет? А если не перезаписывать, а сразу выплевывать, то тогда кроме трех строк ничего хранить не нужно, и проще с началом и случаями с одной и двумя строками реализовать, и с последними строками так же проще выйдет. Сегодня хочу попробовать задачу эту передалать под такой способ, не факт, конечно, что короче выйдет. Понял, принял, спасибо. Тут легко запутаться, конечно. Не удивительно почему в курсах про xrange нигде не упоминается. Хотя в целом знать в любом случае о существовании хотя бы нужно
  5. сын джастдуита? Та возьми и переведи, поймешь, будет ли дискомфорт такой, что перекроет плюсы от очевидной пользы... И что ты ноешь, нет задачи шпарить оптимальное решение за 5 минут, иначе сиди еще полгода шлифуй задачки. Я помню, эту задачу тоже за час решил в похожем ключе, и похуй как-то, посмотрел пооптимальней решений, попытался усвоить. Надо понимать, что, во-первых, есть ребята с попрямей головой, во-вторых, некоторые курс проходят для освоения питона уже после какого-то опыта в других языках. Твоя задача помимо, собственно, знаний получения, если вдруг ты не только тут драмы строчишь, а и в реальности можешь быть неуверенным при устройстве - эту неуверенность вытравить к тому моменту, ибо это фактор весомый. И как, устроился куда-нибудь работать уже? чел, ты просил меня комент кода, я те дал комент, ты попробовал его осмыслить? Мне казалось что я отвечал. Ну в целом то ты почти то же самое что и DeadMage написал, ну кроме моментов со второй матрицей и хранения части таблицы. По тому что DeadMage написал он мне позже еще расширенный комент дал, и я как раз собирюсь сегодня в этом разобраться, по остатку от деления и xrange. А по поводу создания второй матрицы - я не совсем понял что это даст, собственно говоря? Там по условию ответ построчно выдается, т.е. мне сама матрица вторая не нужна, я просто не понимаю особо что мне даст создание второй матрицы, ускорит работу программы из-за того что условий меньше станет? А с хранением отдельных строк - идея интересная, ведь получается что можно хранить три строки всего, и индексы элементов для подсчета всегда будут одинаковыми, нужно их просто перезаписывать в цикле, и учесть варианты с одной входной строкой и двумя.
  6. Та возьми и переведи, поймешь, будет ли дискомфорт такой, что перекроет плюсы от очевидной пользы... И что ты ноешь, нет задачи шпарить оптимальное решение за 5 минут, иначе сиди еще полгода шлифуй задачки. Я помню, эту задачу тоже за час решил в похожем ключе, и похуй как-то, посмотрел пооптимальней решений, попытался усвоить. Надо понимать, что, во-первых, есть ребята с попрямей головой, во-вторых, некоторые курс проходят для освоения питона уже после какого-то опыта в других языках. Твоя задача помимо, собственно, знаний получения, если вдруг ты не только тут драмы строчишь, а и в реальности можешь быть неуверенным при устройстве - эту неуверенность вытравить к тому моменту, ибо это фактор весомый. И как, устроился куда-нибудь работать уже?
  7. Ну тогда для i1 - 1 проверку убрать, т.к. там оно также работает. Ну прочитай про range/xrange, в твоем случае просто можно: for i1 in range(len(a)): for j1 in range(len(a[i1])): print(i1, j1) С остатком от деления - это обычный способ перепрыгивать на начало если вышел за границу: a = [1, 2, 3] length = len(a) # length = 3 print(a[0 % length]) # print(a[0]) print(a[2 % length]) # print(a[2]) print(a[3 % length]) # print(a[0]) print(a[100502 % length]) # print(a[2]) print(a[-1 % length]) # print(a[2]) В твоей задаче просто укоротит код т.е. ифы будут не нужны вообще: # INPUT li = len(a) lj = len(a[0]) for i in xrange(li): for j in xrange(lj): s = a[(i+1)%li][j] s += a[i][j] s += a[i][(j+1)%lj] s += a[i][j-1] print(s, end = ' ') print() О, спасибо. Завтра почитаю, попробую разобраться, че то задачки трахнули мой мозг в итоге и уже ничего не понятно. Там тема наконец-то началась, ФУНКЦИИ, это пожалуй лучше тоже на свежую голову отложить. А то я в прошлом курсе когда проходил не сильно разобрался, когда по ним материал посложнее пошел. Кстати, слышал мнение что стоит пк и мобильник перевести на английский язык, чтоб быстрее к нему привыкнуть, как думаете есть смысл от этого, или это все мелочи и особо ничего не принесет кроме дискомфорта?
  8. ты просто гений, старина Гении на пд не сидят, факт Просто не умея ничего нормально делать используя логику и визуализатор для скорости решения в итоге высираются, но все через жопу и непонятно. А в коментах как будто ебаные гении, решения в 3 строчки и все понятно, только в голову мне такие решения не идут в процессе решения, и после разбора нихрена не запоминаются. А другие вообще решить не могут, хз... Если ли смысл в таком обучении - не ясно до конца. Отсос хиккующих выблядков как по мне не приближается. Зато до сертификата осталось 10% курса добить ;D Хотя подождите, я ошибся, папич же сидел на пд у многих проблемы с алгоритмами, ты просто плохо знаешь айтишников/студентов просто у тебя щас такая стадия что даже такие простые тоже плохо идут, на 1 и 2 курсе большинство такие со временем проходит, но до уровня гениев все равно не дойти никак, тут надо иметь талант лучше бы конечно такой хуйней не занимался и как белый человек в веб вкатился ну я и собираюсь в веб :D сейчас по плану добить этот курс, потом более подробно курс посложнее по python, чтоб разобраться с языком нормально, потом курс какой-нибудь по sql и переходить на изучение какого-нибудь django, ну я это уже говорил. Крч если все нормально будет идти планирую с курсами к концу июля закончить, а в августе буду стараться все это как-то обобщить и в веб углублять, ближе к рабочим моментам (пока не знаю как, ну да и рано об этом). Ну и т.к. бабки будут заканчиваться в сентябре нужно будет уже искать хоть какую-то работу, надеюсь хватит этого. Пока план примерно такой в голове вырисовывается. А возможно у меня ничего не получится и пойду работать сисадмином обратно, ну ничего, там python+sql тоже пригодятся, с этими знаниями можно и на зп повыше претендовать. Или в тестировщики говорят несложно вкатиться. Я же сижу, потому факт что сидят. Приношу свои извинения.
  9. ты просто гений, старина Гении на пд не сидят, факт Просто не умея ничего нормально делать используя логику и визуализатор для скорости решения в итоге высираются, но все через жопу и непонятно. А в коментах как будто ебаные гении, решения в 3 строчки и все понятно, только в голову мне такие решения не идут в процессе решения, и после разбора нихрена не запоминаются. А другие вообще решить не могут, хз... Если ли смысл в таком обучении - не ясно до конца. Отсос хиккующих выблядков как по мне не приближается. Зато до сертификата осталось 10% курса добить ;D Хотя подождите, я ошибся, папич же сидел на пд
  10. Проверять границы и для j1 - 1, для всех остальных проверка есть а для этого случае почему-то нет Использовать x/range() чтобы ходить по индексам вместо i/j1 += 1 и бесполезных i, j Использовать % (остаток от деления) чтобы убрать все проверки на границы А отрицательные границы это нормально, он как раз крайний берет с другой стороны значение, в том случае не нужна проверка. А вот по второму и третьему как-то не совсем понятно, есть пример какой-нибудь простой чтоб разобраться, а то я постоянно какие-то индексы увеличиваю во всех задачах, и как остаток от деления может помочь границы проверить? P.S. Еще ща задачку интересную решил, код как обычно не может не радовать Выведите таблицу размером n×n, заполненную числами от 1 до n^2 по спирали, выходящей из левого верхнего угла и закрученной по часовой стрелке. Ну кроме очевидного что не нужно было c,c1,c2,c3 обозначать, а просто впихать их значения в код и прибавлять какой-нить параметр, которые отдельно увеличивается после прохождения цикла, стало бы короче на 6 строк. Там люди в коментах к курсу пишут что так и не решили, либо решали несколько месяцев, неделю, год и понять не могу, то что говно на за пол часа - час выходит это нормально, или я просто мои решения неочень и так просто никто не пишет. Понятно что навык и все такое, но просто непонятно, нужно решать долго и правильно и логично, или как выходит.
  11. Как думаешь, что можно улучшить в моем коде для решения этой задачи: Напишите программу, на вход которой подаётся прямоугольная матрица в виде последовательности строк, заканчивающихся строкой, содержащей только строку "end" (без кавычек) Программа должна вывести матрицу того же размера, у которой каждый элемент в позиции i, j равен сумме элементов первой матрицы на позициях (i-1, j), (i+1, j), (i, j-1), (i, j+1). У крайних символов соседний элемент находится с противоположной стороны матрицы. В случае одной строки/столбца элемент сам себе является соседом по соответствующему направлению.
  12. Итак, перейдет к нормальным обсуждениям.
  13. Кстати, по поводу курсов, не такие они получается и бесполезные, т.к. материала нихера не дают, а дают задачи(как описывали курс: вот вам 3 гвоздя и 4 болта, постройте двс) приходится гуглить материал, что в целом нормально знания повышает. Этот курс гораздо пизже прошлого, в котором 40 часов видосов и 5 задач крестом. Хоть я там и перепечатывал и разбирал все, в голове это спустя месяца осталось довольно смутно. А решая задачи разные понимаешь как со всем этим работать, и чем больше через жопу решаешь, тем больше материала изучаешь.
  14. Студентам жрать нечего, а многим кроме этого еще и в падлу до соседней комнаты в общаге дойти, о чем ты. ну если взять даже маленькую выборку людей 1-2 человека с ПОТОКА то это уже очень достаточное количество Просто почему не сделать это в онлайне, людей больше будет если норма реклама + территориальные ограничения снимаются практически + можно ненавязчиво организовать что-то типо донатов (за бесплатно же никто ничего делать не будет), либо поиска спонсоров+ проводить вебинары можно так же. Ну и организовать клубные встречи в РЛ в крупных городах регулярные. Опять же в таком варианте могут быть разные направления по интересам. Про деньги я тупо написал, но финансирование в общем нужно будет все равно какое-то.
  15. Студентам жрать нечего, а многим кроме этого еще и в падлу до соседней комнаты в общаге дойти, о чем ты. Бля крч для этого форумы придумали много лет назад
×
×
  • Create New...