что единичный вызов даст на выходе массив, а не конкретный вариант
не представляю в каком случае вернется массив
2)
Stierus пишет:
- на вход подается массив указанного формата,
У тебя на вход в функцию ничего не передается.
Аргумент передается в конструктор класса.
3)
Stierus пишет:
Что хотели от тебя: Что бы в одной функции, на основании переданной вероятности было принято решение, какой элемент массива вернуть (другими словами, составить функцию, которая бы с помощью генератора случайных чисел и полученных коэффициентов, отдала бы 1 ключ из тех, что получила) Ее можно вызвать 1 раз, 100 или 1000 000 - она работала бы одинаково, у тебя же хранится состояние (количество вызовов), от которого меняется вероятность выпадения того или иного ключа, а этого быть не должно
при описанном тобой подходе, когда не сохраняется состояние, вероятность возврата рандомна. Тоесть по сути а может выпасть не в 20% случаев, а при каждом вызове, особенно если значения очень близки (49% и 51%, например). В моем же случае во всех тестах результат был требуемый в задании, я запустил 1000 раз метод call и мне ключ a вернулся 200, а ключ b 800 раз. Тестировал на разных массивах. При этом значения шли в разброс (a,a,b,a,b,b....), но когда а превышало свой лимит, возвращалось b
Сразу прошу прощения если не в ту ветку вопрос, сделайте скидку на то, что это первое мое сообщение на этом форуме
Находясь в поисках работы решил отправить повторно резюме в одну компанию, куда в феврале уже обращался. В тот раз как и в этот мне прислали тестовое задание из 4 задач. И как и в первый раз так и во второй, мне кажется, что программист, проверяющий решение, меня "прокатил". Что бы разобраться, прошу глянуть на код задание и код.
Необходимо написать класс или функцию, реализующую следующие требования:
- на вход подается массив указанного формата,
- на выход обязательно возвращается один ключ переданного массива,
- при многократном вызове функции ключи массива должны возвращаться с пропорциями,
указанными в значениях.
Пример:
На вход подается массив a=>1/8, b=>1/2, при запуске функции большое количество раз, в 20%
случаев должен вернуться ключ a, в остальных – b.
Задание решено неверно. Подход к решению содержит логическую ошибку, приводящую к тому, что единичный вызов даст на выходе массив, а не конкретный вариант. Большая серия вызовов с сохранением результатов в массив скрывает эту ошибку.
Правильное ли замечание он сделал? Я проверял с разными значениями массива, с разным количеством вызовов. Все работало идеально. Где я допустил ошибку?
В прошлый раз было задание по поиску в массиве. И после проверки программист ответил, что надо использовать array_diff, хотя я в комментариях написал, что такой подход работает медленнее, чем мой, на том же Стековерфлоу этот способ рассматривался неоднократно. Вот теперь пытаюсь понять - либо я действительно недопонимаю, либо программист проверяет тестовые задания "на пофиг"