Size: a a a

2020 July 03

А

Александр in RubyRush
длинная портянка полная боли и страданий
источник

А

Александр in RubyRush
Eugene
я себе рисовал отладочный интерфейс, где паравозики катались в ASCII-art, как у них )
я за задачку с небоскребами решил взяться - в итоге начал писать какую-то ООП-замороченную структуру для удобного доступа к полю и прочему) и прямо зацепило) хз получится ли в итоге оптимальный алгоритм для решения
источник

А

Александр in RubyRush
пока научился за линейное время обходить все очевидные случаи)
источник

E

Eugene in RubyRush
Александр
у меня идея в целом какая. Берем все однозначные числа. Их 9, длина каждого - 1 символ
Значит длина первого - 1, последнего 9, с шагом 1, сумма первых 9 чисел (1 + 9) / 2 * 9 (сумма арифметической прогрессии) = 45
Если наша позиция больше - вычитаем 45 идем дальше

Длина первого блока для двузначного числа = 9 + 2 = 11, всего двузначных числе 90, длина последнего - 189, сумма прогрессии - 9000
Дальше для 3, 4, 5 значных и так до тех пор пока не получим, что сумма прогрессии для n-значных чисел превышает наш остаток

Дальше вычисляем в каком из блоков для n-значных чисел находится наш ответ

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

Дальше получается уже чуть проще - длина всех 1-значных - 9, всех двузначных - 2*90, трехзначных - 3*900 - в находим казалось бы в конце число, внутри которого на нужной позиции стоит искомая цифра, но...500 правильных тестов и 1000 неправильных...и все неправильные на таких числах что вручную проверять нереально
ну, короче говоря, надо найти номер блока, а дальше всё ясно
источник

E

Eugene in RubyRush
Александр
я за задачку с небоскребами решил взяться - в итоге начал писать какую-то ООП-замороченную структуру для удобного доступа к полю и прочему) и прямо зацепило) хз получится ли в итоге оптимальный алгоритм для решения
ну не, я такие в институте нарешался, не хочу )
источник

E

Eugene in RubyRush
Eugene
ну, короче говоря, надо найти номер блока, а дальше всё ясно
в задаче на 2-й кю:
- найти номер блока
- рассмотреть граничные случаи (их много)
- дальше всё ясно
источник

А

Александр in RubyRush
Eugene
ну, короче говоря, надо найти номер блока, а дальше всё ясно
вот да и на тех числах, которые реально руками проверить у меня все сходится...а потом начинается)
источник

E

Eugene in RubyRush
т.к. число 90, например, находится в строке "012345..." на 10-м месте (между 9 и 10)
источник

А

Александр in RubyRush
91
источник

А

Александр in RubyRush
не 90
источник

E

Eugene in RubyRush
точно
источник

E

Eugene in RubyRush
as I said, граничные случаи - боль :)
источник

А

Александр in RubyRush
у меня была идея попробовать выявить в подстроке возрастающие паттерны - попробовать найти разрядность искомого места, но т.к. в начале и в конце возможны "обрывки" предыдущего и следующего чисел - это усложняет аналитику)
источник

E

Eugene in RubyRush
возвращаясь к block sequence на 4-й кю - вообще-то если график нарисовать функции k(n), которая возвращает номер блока по n, то видно, что это некое обрисовывание логарифма
источник

RM

R M in RubyRush
Привет всем, есть люди знающие Ангуляр?
источник

PP

Pavel Protchenko in RubyRush
R M
Привет всем, есть люди знающие Ангуляр?
А чего надо?)
источник

D

Dmitriy Y. in RubyRush
oblakogroup?
источник

RM

R M in RubyRush
Dmitriy Y.
oblakogroup?
ага
источник

N

Ni in RubyRush
R M
Привет всем, есть люди знающие Ангуляр?
А ты уверен, что стоит идти на позицию фуллстака без знаний фронтенд части?
источник

RM

R M in RubyRush
Ni
А ты уверен, что стоит идти на позицию фуллстака без знаний фронтенд части?
Да уже забил)
источник