LINUX.ORG.RU

А вы бы приняли такой ответ?

 , ,


0

2

Привет ЛОР!

Недавно,между делом, хотел пройти маленький тест на php задача была такова: нужно объявить массив, в цикле от 1 до 100 заполнить его случайными цифрами (тоже от 1го до 100), и в итоге получить массив с уникальными значениями, реализовать минимальным кол-вом строк

Чтоб решить по-быстрому и красиво я прибегнул к жульничеству:

<?php
$arr = range(1, 100);
shuffle($arr);
foreach ($arr as $key) {
    echo "$key ";
    }
?>

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

А сжульничал я во-первых, потому, что если генерировать случайные числа через mt_rand() нам нужно после избавиться от дублей и, в то же время, обеспечить, чтобы в массиве точно были все числа от 1 до 100.

Во-вторых, потому, что посчитал это красивым решением да и требовали минимум строк :-)

Пацаны это лечится?!

★★★★★

Последнее исправление: Twissel (всего исправлений: 2)

Ответ этого человека в скайпе:

вообщето вы rand в цикле должны вызывать пока я могу сделать вывод что вы очень невнимательно читаете описание задачи

Скинуть ему на прощанье этот тред?! :-D

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

никогда с ним не работать. работать в команде с идиотами не ок

а ты всё правильно сделал

jtootf ★★★★★
()

тест на php

звучит как «реакция Вассермана» или «тест на ВИЧ». Это не заразно?

slackwarrior ★★★★★
()
Ответ на: комментарий от Twissel

Моя тебя предупреждала, что это тест на внимательность и исполнительность, на Фишера тем более Йетса всем плевать.

ilovewindows ★★★★★
()
Ответ на: комментарий от Twissel

Скинуть ему на прощанье этот тред?! :-D

Конечно. А сюда – название компании.

staseg ★★★★★
()
Ответ на: комментарий от ilovewindows

Прости приятель, Исполнительность... — Если у вас есть исполнительный болван и вы приумножаете энтропию в программировании, то, как сейчас принято говорить, для таких может быть отдельный котел в Аду.

После того как кто-то другой должен будет это как минимум поддерживать о развитии я уже и не говорю... эмоционально немного... зато по правде.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

ни заглавной буквы, ни точки

вообщето

три отсутствующих запятых

Как у подобных дебилов хватает объема мозга на натягивание шаблонов на вордпресс?

Deleted
()
Ответ на: комментарий от Twissel

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

ilovewindows ★★★★★
()
Ответ на: комментарий от ilovewindows

Без обид :-)

Просто это более глобальный вопрос: Гугл не стал бы Гуглом, если бы работал по такому принципу, но это уже совсем другая история...

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

эпично

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

Debasher ★★★★★
()
Последнее исправление: Debasher (всего исправлений: 2)
Ответ на: комментарий от ilovewindows

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

«Рашн бизнес» во всей красе. Ты такой честный, меня аж трисет!

staseg ★★★★★
()
Ответ на: комментарий от Deleted

Ну не будем вешать ярлыки челу, просто это очередной тред, из которого ясно почему пых считают говном: низкий порог вхождения, потом здесь дернем функцию, там закостылим и воон там тоже чего-нибудь прилепим... в итоге вопли сами знаете о чем ;-)

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

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

Deleted
()
Ответ на: комментарий от ilovewindows

Моя тебя предупреждала, что это тест на внимательность и исполнительность,

Внимательный человек читает какой требуется результат: «получить массив с уникальными значениями». Компания, которая отнимает у специалистов время тестами, результаты которых сама же не в состоянии интерпретировать должна как-то пострадать. Ну хоть название её опубликовать, чтоб другие не попадались.

anonymous
()
Ответ на: комментарий от Twissel

Нечего изучать. Роб Пайк:

The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt.

Deleted
()
Ответ на: комментарий от anonymous

Сам человек названия компании не предоставил, вот его объявление на фриланс-площадке:

http://goo.gl/i5NZrB

Хотя такой «жажды крови» не пойму, каждый на пыхе кодит как умеет ;-)

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

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

ilovewindows ★★★★★
()
Ответ на: комментарий от staseg

Циниками не рождаются. А «рашн бизнес» только учится, ему очень далеко до нерашен бизнес. То что прикажут, то и напишешь, даже туалетную бумагу купишь у того у кого надо.

ilovewindows ★★★★★
()
Ответ на: комментарий от Twissel

Junior-Middle PHP

Middle

вообщето вы rand в цикле должны вызывать пока я могу сделать вывод что вы очень невнимательно читаете описание задачи

Почему начинающий джун собеседует мидлов?

templarrr ★★★★★
()

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

anonymous
()
Ответ на: комментарий от ilovewindows

Я вот только не понял причем здесь Вики, я официальную доку читал.

Потому что если решать задачу серьезно и в лоб, то можно «утонуть» в деталях а-ля:

уникальные значения без повторов или с ними, полный ряд натуральных чисел или с «дырками» и чисел или цифр таки.

Я,конечно, за читинг с себя вины не снимаю, НО или четкая постановка задачи или моя вольная ее интерпретация...

Twissel ★★★★★
() автор топика

Задача:

В массиве на 100 персон, каждому элементу присвоить случайное значение от 1 до 100 без повторений.

Результат:

В массиве на 100 персон каждый элемент суть случайное число от 1 до 100 без повторений.

Достигнут за:

Один цикл.

Задача выполнена, пренебречь всеми прочими факторами.

anonymous
()
Ответ на: комментарий от Twissel

— Не пишите больше! — попросил пришедший умоляюще.

— Обещаю и клянусь! — торжественно произнес Иван.

Клятву скрепили рукопожатием

anonymous
()
Ответ на: комментарий от ilovewindows

Опять же повторюсь, я далеко не прошаренный кодер, но вашу ж мать налево:

как при такой простой задаче можно вилами намешать тонну навоза?!

Это же не Ынтырпрайз это тестовый пример, зачем еще и тут оверхед из говнокода?!

Эмоции.jpg

Twissel ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Примерно так ;-)

Просто теперь буду сам пилить свой микропроект для портфолио, если вдруг этот проект начнет приносит профит людям далеким от кодинга вот тогда и можно подумать о том, чтобы записать нормальным джуном в какую-нибудь серьёзную фирму.

Я так думаю.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от staseg

Просто фильм по-своему классный.

Лично я именно из него в середине 90-х усвоил два сочетания: «рашн бизнес» и «рашн вумен».

Потому и написал.

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Twissel

не, ты всё не так понял. не стоит писать в конторы, у которых тестовое задание пишут мудаки. в нормальные - why not? я в своем куачестве насмотрелся историй, когда ищут сениора, а тестовое задание писал тупоголовый околоджуниор - эпичные разборки бывали, жаль, этика не даёт их в паблик постить. но и в моей практике бывали случаи когда тз (как основной признак адекватности конторы) был таким говном, что я его без уточнений заворачивал и сразу писал что с вами мы точно не сработаемся

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

anonymous
()

на питоне(2-м) вот так

import random

list_len=100
result_list=[]
source_list=range(1,list_len+1)

while(list_len>0):
    rnd_index=random.randint(0,list_len-1)
    rnd_element=source_list.pop(rnd_index)
    result_list.append(rnd_element)
    list_len-=1

print result_list

на этом вашем пехопе должны быть аналогичные инструкции. Количество строк можно уменьшить в ущерб наглядности удалив лишние присваивания.

anonymous
()

Php ни разу не трогал, но решил бы в таком же ключе. В наших ънтерпрайзах надо бизнес-логику пейсать, а не фапать на красивое решение, если речь идет о такой мелочи. Если задача большая, сложная, требует оптимизации - вот тут уже думать надо.

bytecode ★★
()
Ответ на: комментарий от ilovewindows

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

То это твои личные половые проблемы.

ни хрена не помнишь что она точно делает

php.net

знание этой функции ни о чем не говорит, что это признак крутого программера на пыхе

Нет, признак „крутого программера” на пыхе — желание жрать говно и везде лепить свои кривые велосипеды вместо использования стандартных хорошо документированных функций.

h578b1bde ★☆
()
Ответ на: комментарий от redixin

Спасибо, мне очень важно твоё мнение ;-)

Оставайся пожалуйста на линии....

Twissel ★★★★★
() автор топика
Ответ на: комментарий от Suntechnic

Не решил «в лоб» ни разу ни пхпист, наверно так :-)

Twissel ★★★★★
() автор топика
Ответ на: комментарий от anonymous

Спасибо.

Да нет, вроде нормально понял.

Свой микрушный проект хочу сваять, чтобы набить руку. Потому как с этим тестовым заданием мне действительно «свезло» — попалась простейшая задача, на более сложных меня вполне заслуженно и закономерно могли обломать. Но меня убило то, что и на этом пятачке попросили набросать тонну «навоза».

Я вообще-то был согласен работать за практический скилл и еду, но это был не тот случай, ага!

Twissel ★★★★★
() автор топика
Ответ на: комментарий от ilovewindows

Хм, а почему в этом коде нельзя получить значения массива по

print_r($value);
?

Twissel ★★★★★
() автор топика
Последнее исправление: Twissel (всего исправлений: 1)
Ответ на: комментарий от ilovewindows

Но любой руководитель возьмет трех болванов вместо умника.

Ты это на полном серьёзе говоришь?

mix_mix ★★★★★
()
Ответ на: комментарий от anonymous

Сколько времени тратится на удаление элементов из source_list?

Вон же по ссылке на Fisher-Yates shuffle есть человеческий алгоритм:

To initialize an array a of n elements to a randomly shuffled copy of source, both 0-based:
  for i from 0 to n − 1 do
      j ← random integer such that 0 ≤ j ≤ i
      if j ≠ i
          a[i] ← a[j]
      a[j] ← source[i]
anonymous
()
Ответ на: комментарий от deep-purple

Ибо тут пых, нам интерпрайзить надо, а не массивы перемешивать.

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

lazyklimm ★★★★★
()
Ответ на: комментарий от ilovewindows

Кстати это решение „выхлопа“ таки не дает в отличии от кода amomymous

ЧЯДНТ?!

Twissel ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.