Alfred
может он там подсвизлил
Paks
или еще один из вопросов из собеседования:
У вас есть односвязный список, как вычислить k-й елемент с конца? Использовать указатели
Alfred
слишком классика
Paks
я этой класики вообще не знал) к таким вопросам даже близко готов не был)
Alfred
найти цикл интереснее
Roman
Alfred
Alfred
Paks
ага
ну походу таким вопрос и был))))
Paks
ответ рисовали с запуском нескольких указателей с шагом) но уже забыл точное описание
Alfred
самое простое закольцовывается ли, посложнее длину кольца посчитать
A
Чтобы ответить есть ли цикл. запускаются 2 указателя, один с шагом =1, второй с шагом=2. и если есть цикл - они встретятся.
A
ответ рисовали с запуском нескольких указателей с шагом) но уже забыл точное описание
Alfred
а то что ты написал это не явное приведение
Paks
Paks
для була всовываешь число, которое либо перегружает char толи хз как взаимодействует, но на выходе оно даст 0
итого выйдет BOOL == NO/False
Paks
Paks
c bool - все в порядке)
q210
ты в вагоне закольцованного поезда. Можешь включать-выключать свет в вагонах. Найди длинну поезда.
q210
классика
Paks
ну идти по поезду и включать по очереди лампочки) в конце дойдешь до включеной)
q210
а никто не говорил что все лампочки в поезде выключены в начале =)
Paks
блин)
Paks
по идее в в текущем выключить, в 1 включить, и дальше по очереди включать и возвращатьсся
Paks
идальше так двигаться пока 0 елемент не окажется зажженным
Paks
и двигаясь назад считать вагоны
Paks
каждый раз
Alfred
если поезд достаточно длинный, мы можем встретить любую комбинацию, которую мы ожидаем.
q210
насчёт включать и возвращаться не совсем понял но принцип верный
q210
тебе надо дождаться пока в одном из известных вагонов изменится состояние
q210
это значит что ты обошёл поезд
Paks
ну 0 выключен, 1 включили, вернулись к нулевому - он выключен, идем прямо, к 2, включили - вернулись - 0 выключен
Paks
и так двигаться пока нашь 0 елемент не окажется зажженным
q210
если конечно вас таких там не двое скитальцев =)
q210
а, ну да, типа того
q210
хотя я решал идя в 2 стороны
Paks
а как в 2?)
Paks
одновременно идти?)
Stanislav
Идешь вперед - включаешь, назад - выключаешь
Stanislav
На 1 вагон, потом на 2, 4, 8… Или как-нибудь еще
Paks
и как узнать когда все?)
Stanislav
В какой-то момент увидишь, что включенные (выключенные) опять выключились (включились)
q210
всё, когда в одном из известных тебе вагонов свет внезапно изменится
q210
тыж считаешь вагоны когда идёшь вперёд или назад
Stanislav
То бишь ты захватил их идя в другой конец
Paks
а как ты узнаешь вагон?)
Paks
а
Paks
ну походу по итерациям что первый, что второй равный
Paks
или в 1 сторону - в 2 раза длинней по итерациям?
A
Ну это походу двоичным поиском ответ подбираем. на текущем шаге медиана = M. значит идем вперед на M вагонов и включаем. и потом обратно идем на M вагонов и выключаем и попутно проверяем чтобы по пути вперед были все выключены(когда включаем лампочки) и обратно (только уже наоборот)?
Paks
если идти а если вагонов 2, а медиана 10?
q210
ладно, теперь другая задача
q210
тоже интересная
q210
но с подвохом
q210
Дана функция rnd2, возвращающая число из последовательности {0, 1} равновероятно. Требуется на основе данной функции создать функцию rnd4, которая также равновероятно возвращает целые числа из последовательности {0, 1, 2, 3}. После этого необходимо создать функцию rnd3, которая возвращает числа из последовательности {0, 1, 2} также равно вероятно, но с допущением, что данная функция может работать неопределенное время.
q210
решается либо очень быстро, либо никогда
q210
её на собеседовании на разработчика я бы не стал задавать, на самом деле
Paks
так) что-то не понял задачи)
q210
она слегка издевательская
Paks
создать 3 рандома?) с длинной 2 3 и 4?)
q210
на основе rnd2
q210
которая уже есть
q210
сначала сделать rnd4
q210
потом rnd3
Paks
а
Paks
rnd4(rnd2 (если 0 ? rnd2 : rnd2 + 2)
Paks
а rnd3 на основе какой?) предыдущх двух?)
q210
rnd3 тоже на основе rnd2
Paks
а, вот rnd3 - это дважды вызвать rnd2 и сплюсовать значения
q210
мимо
Paks
фак, почему?
Eduard
берем rnd4 если выпадает 3 повторить
Paks
1 будет чаще всего попадать?
Alfred
тогда распределение будет 0-25% 1-50% 2-25%