Перейти к публикации
  • Сейчас на странице   Всего пользователей: 4   (0 пользователей, 4 гостя)

Rooster

Программирование[10]

Перепись  

313 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

sonac написал 5 минут назад:

когда открыл код :monkas:

Сделал вменяемые названия для функции и переменных, сорри
Парни, я 2 недели назад hello world сделал, не пинайте ногами

Поделиться сообщением


Ссылка на сообщение

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

iMbanana понравилось это

Поделиться сообщением


Ссылка на сообщение
import code_na_pytuhone.py

 

saegSveta понравилось это

 

DB

59221730.png


Я - гений, ёпта

bfe7003be27e8e81ce6a7d2d8192e9ae.jpg


22


msg-93176-0-72842500-1438846470_thumb.jpg

Поделиться сообщением


Ссылка на сообщение
sonac написал 5 минут назад:

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

Прочел в интернете, что чтобы выучить программирование, нужно программировать, и изучать то, что интересно. Мне интересно решать каты, в том числе. С 8 по 5 уровни не слишком сложно, вот на этой 4го уровня завис.
С радостью прислушаюсь к конструктивным предложениям более опытных товарищей(всех тут:D)

Поделиться сообщением


Ссылка на сообщение
Ar1kan написал 40 минут назад:

Привет богам шайтан-машин!
Начал учить пайтон, писал вчера код для каты на кодварс полдня, код рабочий, но слишком медленно работает. Подскажите, пожалуйста, какие варианты оптимизации. 

  код

ans = []
def turn(finish_pos):
    global ans
    ans.append('R')
    if finish_pos == '<':
        finish_pos = 'v'
    elif finish_pos == 'v':
        finish_pos = '>'
    elif finish_pos == '>':
        finish_pos = '^'
    else:
        finish_pos = '<'
    return finish_pos
def escape(maze):
    d, x_start, y_start, x_finish, y_finish, start_pos, finish_pos = [], '', '', '', '', '', ''
    global ans
    if maze[0].find(' ') != -1:
        x_finish, y_finish, finish_pos = maze[0].find(' '), 0, '^'
    elif maze[-1].find(' ') != -1:
        x_finish, y_finish, finish_pos = maze[-1].find(' '), len(maze) - 1, 'v'
    for i in range(len(maze)):
        d.append(list(maze))
        if maze[0] == ' ':
            x_finish, y_finish, finish_pos = 0, i, '<'
        elif maze[-1] == ' ':
            x_finish, y_finish, finish_pos = len(maze) - 1, i, '>'
        if maze.find('^') != -1:
            x_start, y_start, start_pos = maze.find('^'), i, '^'
        elif maze.find('>') != -1:
            x_start, y_start, start_pos = maze.find('>'), i, '>'
        elif maze.find('<') != -1:
            x_start, y_start, start_pos = maze.find('<'), i, '<'
        elif maze.find('v') != -1:
            x_start, y_start, start_pos = maze.find('v'), i, 'v'
    d[y_start][x_start] = 0
    if type(x_start) == int and type(y_start) == int and type(x_finish) == int and type(y_finish) == int and start_pos in ['<', '>', '^', 'v'] and finish_pos in ['<', '>', '^', 'v']:
        arrx1, arrx2, arry1, arry2, counter = [x_start], [], [y_start], [], 1
        while d[y_finish][x_finish] == ' ':
            for i in range(len(arrx1)):
                if arrx1 + 1 < len(d[0]):
                    if d[arry1][arrx1 + 1] == ' ':
                        d[arry1][arrx1 + 1] = counter
                        arrx2.append(arrx1 + 1)
                        arry2.append(arry1)
                if arrx1 > 0:
                    if d[arry1][arrx1 - 1] == ' ':
                        d[arry1][arrx1 - 1] = counter
                        arrx2.append(arrx1 - 1)
                        arry2.append(arry1)
                if arry1 + 1 < len(d):
                    if d[arry1 + 1][arrx1] == ' ':
                        d[arry1 + 1][arrx1] = counter
                        arrx2.append(arrx1)
                        arry2.append(arry1 + 1)
                if arry1 > 0:
                    if d[arry1 - 1][arrx1] == ' ':
                        d[arry1 - 1][arrx1] = counter
                        arrx2.append(arrx1)
                        arry2.append(arry1 - 1)
            counter += 1
            arrx1, arrx2, arry1, arry2 = arrx2, [], arry2, []
        while d[y_finish][x_finish] != 0:
            if x_finish + 1 < len(d[0]):
                if type(d[y_finish][x_finish + 1]) == int:
                    if d[y_finish][x_finish] == 1 + d[y_finish][x_finish + 1]:
                        while finish_pos != '<':
                            finish_pos = turn(finish_pos)
                        ans.append('F')
                        x_finish += 1
            if x_finish > 0:
                if type(d[y_finish][x_finish - 1]) == int:
                    if d[y_finish][x_finish] == 1 + d[y_finish][x_finish - 1]:
                        while finish_pos != '>':
                            finish_pos = turn(finish_pos)
                        ans.append('F')
                        x_finish -= 1
            if y_finish + 1 < len(d):
                if type(d[y_finish + 1][x_finish]) == int:
                    if d[y_finish][x_finish] == 1 + d[y_finish + 1][x_finish]:
                        while finish_pos != '^':
                            finish_pos = turn(finish_pos)
                        ans.append('F')
                        y_finish += 1
            if y_finish > 0:
                if type(d[y_finish - 1][x_finish]) == int:
                    if d[y_finish][x_finish] == 1 + d[y_finish - 1][x_finish]:
                        while finish_pos != 'v':
                            finish_pos = turn(finish_pos)
                        ans.append('F')
                        y_finish -= 1
        while finish_pos != start_pos:
            finish_pos = turn(finish_pos)
        return ans[::-1]
    else:
        return []

 

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

Если любой то используй DFS https://en.wikipedia.org/wiki/Depth-first_search

Если оптимальный то BFS с бэктрекингом https://en.wikipedia.org/wiki/Breadth-first_search

 

У тебя что-то похожее на BFS но я не понял что за arrx/y1/2, и зачем ты их меняешь местами.

 

Вот тебе пример второго на питоне https://stackoverflow.com/a/47178439/4712360

DDamager и Ar1kan понравилось это

Поделиться сообщением


Ссылка на сообщение
DeadMage написал 1 минуту назад:
Ar1kan написал 47 минут назад:

Привет богам шайтан-машин!
Начал учить пайтон, писал вчера код для каты на кодварс полдня, код рабочий, но слишком медленно работает. Подскажите, пожалуйста, какие варианты оптимизации. 

  код

ans = []
def turn(finish_pos):
    global ans
    ans.append('R')
    if finish_pos == '<':
        finish_pos = 'v'
    elif finish_pos == 'v':
        finish_pos = '>'
    elif finish_pos == '>':
        finish_pos = '^'
    else:
        finish_pos = '<'
    return finish_pos
def escape(maze):
    d, x_start, y_start, x_finish, y_finish, start_pos, finish_pos = [], '', '', '', '', '', ''
    global ans
    if maze[0].find(' ') != -1:
        x_finish, y_finish, finish_pos = maze[0].find(' '), 0, '^'
    elif maze[-1].find(' ') != -1:
        x_finish, y_finish, finish_pos = maze[-1].find(' '), len(maze) - 1, 'v'
    for i in range(len(maze)):
        d.append(list(maze))
        if maze[0] == ' ':
            x_finish, y_finish, finish_pos = 0, i, '<'
        elif maze[-1] == ' ':
            x_finish, y_finish, finish_pos = len(maze) - 1, i, '>'
        if maze.find('^') != -1:
            x_start, y_start, start_pos = maze.find('^'), i, '^'
        elif maze.find('>') != -1:
            x_start, y_start, start_pos = maze.find('>'), i, '>'
        elif maze.find('<') != -1:
            x_start, y_start, start_pos = maze.find('<'), i, '<'
        elif maze.find('v') != -1:
            x_start, y_start, start_pos = maze.find('v'), i, 'v'
    d[y_start][x_start] = 0
    if type(x_start) == int and type(y_start) == int and type(x_finish) == int and type(y_finish) == int and start_pos in ['<', '>', '^', 'v'] and finish_pos in ['<', '>', '^', 'v']:
        arrx1, arrx2, arry1, arry2, counter = [x_start], [], [y_start], [], 1
        while d[y_finish][x_finish] == ' ':
            for i in range(len(arrx1)):
                if arrx1 + 1 < len(d[0]):
                    if d[arry1][arrx1 + 1] == ' ':
                        d[arry1][arrx1 + 1] = counter
                        arrx2.append(arrx1 + 1)
                        arry2.append(arry1)
                if arrx1 > 0:
                    if d[arry1][arrx1 - 1] == ' ':
                        d[arry1][arrx1 - 1] = counter
                        arrx2.append(arrx1 - 1)
                        arry2.append(arry1)
                if arry1 + 1 < len(d):
                    if d[arry1 + 1][arrx1] == ' ':
                        d[arry1 + 1][arrx1] = counter
                        arrx2.append(arrx1)
                        arry2.append(arry1 + 1)
                if arry1 > 0:
                    if d[arry1 - 1][arrx1] == ' ':
                        d[arry1 - 1][arrx1] = counter
                        arrx2.append(arrx1)
                        arry2.append(arry1 - 1)
            counter += 1
            arrx1, arrx2, arry1, arry2 = arrx2, [], arry2, []
        while d[y_finish][x_finish] != 0:
            if x_finish + 1 < len(d[0]):
                if type(d[y_finish][x_finish + 1]) == int:
                    if d[y_finish][x_finish] == 1 + d[y_finish][x_finish + 1]:
                        while finish_pos != '<':
                            finish_pos = turn(finish_pos)
                        ans.append('F')
                        x_finish += 1
            if x_finish > 0:
                if type(d[y_finish][x_finish - 1]) == int:
                    if d[y_finish][x_finish] == 1 + d[y_finish][x_finish - 1]:
                        while finish_pos != '>':
                            finish_pos = turn(finish_pos)
                        ans.append('F')
                        x_finish -= 1
            if y_finish + 1 < len(d):
                if type(d[y_finish + 1][x_finish]) == int:
                    if d[y_finish][x_finish] == 1 + d[y_finish + 1][x_finish]:
                        while finish_pos != '^':
                            finish_pos = turn(finish_pos)
                        ans.append('F')
                        y_finish += 1
            if y_finish > 0:
                if type(d[y_finish - 1][x_finish]) == int:
                    if d[y_finish][x_finish] == 1 + d[y_finish - 1][x_finish]:
                        while finish_pos != 'v':
                            finish_pos = turn(finish_pos)
                        ans.append('F')
                        y_finish -= 1
        while finish_pos != start_pos:
            finish_pos = turn(finish_pos)
        return ans[::-1]
    else:
        return []

 

Показать больше  

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

Если любой то используй DFS https://en.wikipedia.org/wiki/Depth-first_search

Если оптимальный то BFS с бэктрекингом https://en.wikipedia.org/wiki/Breadth-first_search

 

У тебя что-то похожее на BFS но я не понял что за arrx/y1/2, и зачем ты их меняешь местами.

 

Вот тебе пример второго на питоне https://stackoverflow.com/a/47178439/4712360

https://www.codewars.com/kata/5877027d885d4f6144000404/train/python 
 

Цитата

You don't explicitely HAVE to find the shortest possible route, but you're quite likely to timeout if you don't ;P

У меня, вроде как, алгоритм Ли волновой, точнее, моя попытка его реализовать. в массивы записываются координаты ячеек, которые прошли условие и в которые присвоилось значение, чтобы на следующей итерации шагать только от них
Спасибо, буду изучать

Поделиться сообщением


Ссылка на сообщение
Ar1kan написал 2 минуты назад:

У меня, вроде как, алгоритм Ли волновой, точнее, моя попытка его реализовать. в массивы записываются координаты ячеек, которые прошли условие и в которые присвоилось значение, чтобы на следующей итерации шагать только от них
Спасибо, буду изучать

Ну алгоритм Ли это и есть BFS, так что я думаю дело только в реализации

The Lee algorithm is one possible solution for maze routing problems based on breadth-first search.

Поделиться сообщением


Ссылка на сообщение
ars0k написал 22 часа назад:
ЖУМОНГ написал 02.02.2021 в 16:12:
ars0k написал 02.02.2021 в 15:15:
ЖУМОНГ написал 01.02.2021 в 15:05:
Just.Doit написал 01.02.2021 в 15:00:
ЖУМОНГ написал 01.02.2021 в 14:55:
Just.Doit написал 01.02.2021 в 14:51:
ЖУМОНГ написал 01.02.2021 в 12:13:
iMbanana написал 01.02.2021 в 12:01:
ЖУМОНГ написал 31.01.2021 в 23:22:
iMbanana написал 31.01.2021 в 21:28:
ЖУМОНГ написал 31.01.2021 в 12:58:

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

запромоутили?

ну сейчас нет, но вот например в конце года ожидаю +100% ап от нынешнего, а топик явно дольше просуществует:fffuuu:

это че за ап такой епт

да нормальный, я ж щас джун, планы на год въебывать нормальненько и в ноябре-декабре уйти мидлом на норм зп

ну я знаю что мне уже сейчас тыщ 10-15 не доплачивают (у меня ща 80, видели бы вы, как у меня горела жопа на полугодовой оценке)

к концу года заиметь 160 совершенно реально

@FeelYourDestiny можешь скринить:teplolampovo:

напомни плс у тебя сейчас какой опыт и кем?

 

джун, фронт, на нынешнем месте работы - 9 месяцев (хотя 3 из них я пинала балду)

прошлые верстальные полгода в расчет не беру

это всё в мск как я понимаю..?

сначала было подумал что через 10-11 месяцев из джуна в мидла вкатиться и сразу на почти средне мидловую зп это какие-то завышенные ожидания

но 9 мес + 11 + какой-то опыт в верстке до этого. саундс претти гуд.

сильно не гарантированно конечно, особенно в свете кризиса. и даже при учете "буду вджобывать и потеть год". но согласен что весьма вероятно.

ЖУМОНГ написал 01.02.2021 в 12:13:

видели бы вы, как у меня горела жопа на полугодовой оценк

а что не так? какой фидбек был?

никакой

сказали шо я молодец и апнули на 6%)

у меня завтра ревью, чую даже 6% не будет

но я уже ливаю 100% после февраля

ай фил ё пэйн

донт синк соу

у меня 9 месяцев зп урезали на 20%,  обещали выплатить сверху че-то под нг, выплатили копейка в копейку что урезали:zemlyapuhom:

как и говорил хуев за щеку

наперформил на +0:popavs:

ебать охуеют ребятки когда ливну

Pep_See и saegSveta понравилось это

Поделиться сообщением


Ссылка на сообщение
FeelYourDestiny написал 48 минут назад:

ебать ты ахуеешь когда узнаешь, что они не ахуеют

я понимаю, что это звучит ЧСВшно и "незаменимых людей нет", но мы за год нашли только 2 человек - одного разраба для аналога сапа, другую дауншу аналитичку, которая в яндексе пишет "январь как по английски".

Люди тупо не могут решить тестовое в экселе - "допустим у тебя рекламная компания стоит 1000$ и ты привлек 100 клиентов" - какой будет Cost per Order в данном случае? 

  Показать содержимое

представьте, что дауны не могут разделить одну ячейку на другую в экселе

Поделиться сообщением


Ссылка на сообщение

это не так просто как кажется. (10?)

 

Поделиться сообщением


Ссылка на сообщение

хз, по моему у руководителей как-то часто пригорает после ливов работяг

goodmood понравилось это

Поделиться сообщением


Ссылка на сообщение
ars0k написал 5 часов назад:
ars0k написал 02.02.2021 в 19:09:
ЖУМОНГ написал 02.02.2021 в 16:12:
ars0k написал 02.02.2021 в 15:15:
ЖУМОНГ написал 01.02.2021 в 15:05:
Just.Doit написал 01.02.2021 в 15:00:
ЖУМОНГ написал 01.02.2021 в 14:55:
Just.Doit написал 01.02.2021 в 14:51:
ЖУМОНГ написал 01.02.2021 в 12:13:
iMbanana написал 01.02.2021 в 12:01:
ЖУМОНГ написал 31.01.2021 в 23:22:
iMbanana написал 31.01.2021 в 21:28:
ЖУМОНГ написал 31.01.2021 в 12:58:

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

запромоутили?

ну сейчас нет, но вот например в конце года ожидаю +100% ап от нынешнего, а топик явно дольше просуществует:fffuuu:

это че за ап такой епт

да нормальный, я ж щас джун, планы на год въебывать нормальненько и в ноябре-декабре уйти мидлом на норм зп

ну я знаю что мне уже сейчас тыщ 10-15 не доплачивают (у меня ща 80, видели бы вы, как у меня горела жопа на полугодовой оценке)

к концу года заиметь 160 совершенно реально

@FeelYourDestiny можешь скринить:teplolampovo:

напомни плс у тебя сейчас какой опыт и кем?

 

джун, фронт, на нынешнем месте работы - 9 месяцев (хотя 3 из них я пинала балду)

прошлые верстальные полгода в расчет не беру

это всё в мск как я понимаю..?

сначала было подумал что через 10-11 месяцев из джуна в мидла вкатиться и сразу на почти средне мидловую зп это какие-то завышенные ожидания

но 9 мес + 11 + какой-то опыт в верстке до этого. саундс претти гуд.

сильно не гарантированно конечно, особенно в свете кризиса. и даже при учете "буду вджобывать и потеть год". но согласен что весьма вероятно.

ЖУМОНГ написал 01.02.2021 в 12:13:

видели бы вы, как у меня горела жопа на полугодовой оценк

а что не так? какой фидбек был?

никакой

сказали шо я молодец и апнули на 6%)

у меня завтра ревью, чую даже 6% не будет

но я уже ливаю 100% после февраля

ай фил ё пэйн

донт синк соу

у меня 9 месяцев зп урезали на 20%,  обещали выплатить сверху че-то под нг, выплатили копейка в копейку что урезали:zemlyapuhom:

как и говорил хуев за щеку

наперформил на +0:popavs:

ебать охуеют ребятки когда ливну

пиздос

мне канеш апнули хуя да нихуя, но хоть премию перед нг 15% от годового оклада отвалили :onneponimaet:


gIrw278.gif

Your desire is your essence.

Поделиться сообщением


Ссылка на сообщение

Механизм премий — хуйня ебаная.


Поделиться сообщением


Ссылка на сообщение
iKrivetko написал 6 минут назад:

Механизм премий — хуйня ебаная.

чем?


gIrw278.gif

Your desire is your essence.

Поделиться сообщением


Ссылка на сообщение
ЖУМОНГ said 20 minutes ago:
iKrivetko said 26 minutes ago:

Механизм премий — хуйня ебаная.

чем?

 

Во-первых непрозрачностью, во-вторвых — деньги сегодня дороже, чем деньги завтра, и заставляет людей выдавливать из себя "ещё несколько месяцев" вместо того, чтобы спокойно уволиться когда уже пора. Ну и зачастую степень токсичности повышает.

iMbanana понравилось это

Поделиться сообщением


Ссылка на сообщение
iKrivetko написал 41 минуту назад:

Механизм премий — хуйня ебаная.

какой механизм лучше для материального мотивирования хорошей работы и/или способа связать успехи проекта/команды с вкладом конкретного человека?


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение
iKrivetko написал 13 минут назад:
ЖУМОНГ написал 37 минут назад:
iKrivetko написал 43 минуты назад:

Механизм премий — хуйня ебаная.

чем?

 

Во-первых непрозрачностью, во-вторвых — деньги сегодня дороже, чем деньги завтра, и заставляет людей выдавливать из себя "ещё несколько месяцев" вместо того, чтобы спокойно уволиться когда уже пора. Ну и зачастую степень токсичности повышает.

ну тут согл со всем

 

Just.Doit написал 1 минуту назад:
iKrivetko написал 44 минуты назад:

Механизм премий — хуйня ебаная.

какой механизм лучше для материального мотивирования хорошей работы и/или способа связать успехи проекта/команды с вкладом конкретного человека?

повышение зп?


gIrw278.gif

Your desire is your essence.

Поделиться сообщением


Ссылка на сообщение
iKrivetko написал 17 минут назад:
ЖУМОНГ написал 41 минуту назад:
iKrivetko написал 48 минут назад:

Механизм премий — хуйня ебаная.

чем?

 

Во-первых непрозрачностью, во-вторвых — деньги сегодня дороже, чем деньги завтра, и заставляет людей выдавливать из себя "ещё несколько месяцев" вместо того, чтобы спокойно уволиться когда уже пора. Ну и зачастую степень токсичности повышает.

ух знал бы ты нашу систему бонусов
там блять высшая математика
я даже не пытался вникнуть

  Показать содержимое

"These days, when a candidate for a position asks about pay in the first, or even second question, they don’t get to the next interview. It means we’re not on the same page. You have to trust what you’re worth, and that I’ll pay you for what you’re worth. But that should not be the question asked before you inquire about our vision or core values"

 

бтв цитата нашего сео из новой статьи

Feanaro понравилось это

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...