Как определить является ли человек программистом? Дать задачку и слушать ответы: «Буратино дали 3 / it-юмор :: Буквы на белом фоне :: буратино :: программисты :: задача :: логика :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

it-юмор geek логика задача программисты буратино Буквы на белом фоне 

Как определить является ли человек программистом? Дать задачку и слушать ответы: «Буратино дали 3 яблока. Два он отдал Мальвине. Сколько яблок у него осталось?» 1. (initializing) Неизвестно, сколько яблок было у Буратино до того, как ему дали 3 яблока. 2. Неизвестно два 'чего' он отдал


Подробнее
Как определить является ли человек программистом? Дать задачку и слушать ответы: «Буратино дали 3 яблока. Два он отдал Мальвине. Сколько яблок у него осталось?» 1. (initializing) Неизвестно, сколько яблок было у Буратино до того, как ему дали 3 яблока. 2. Неизвестно два 'чего' он отдал Мальвине. 3. Неизвестно не является ли Буратино и Мальвина двумя разными сущностями, или одно из них это ссылка на другое. 4. Неизвестно что подразумевается под процессом "отдал ", и результат этого процесса (может Мальвина не взяла). 5. Непонятно в какой момент 'осталось'. После того как он попытался дать в первый раз? 6. (state) Неизвестно не являются ли яблоки частью состояния Буратино, или самостоятельными объектами. 7. (волатильность) Не ясно, сколько времени прошло с момента нахождения яблок у Буратино до процесса 'отдачи": - может яблоки полураспадаются сами по себе (сгнивают), или возвращаются к тем, кто их дал. - может их едят пока они у Буратино, а он просто этого не знает. 8. (длина переменной) Не ясно, сколько яблок может удержать Буратино. Может, всего 2... и если он 2 отдал, у него нет яблок. 9. Если процесс дачи яблок рекурсивный, мы все останемся без яблок. Короче, тёмная история...
it-юмор,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,логика,задача,программисты,буратино,Буквы на белом фоне
Еще на тему
Развернуть

Отличный комментарий!

это не человек-программист. Это человек-компилятор. При чем тупой донельзя.
Anubis_66RUS Anubis_66RUS16.07.202110:14ссылка
+43.9
это не человек-программист. Это человек-компилятор. При чем тупой донельзя.
И что тупого в проверках типов и стейта? Язык задачи похож на скриптовый, а то и вообще на нечто аля-пролог.
Понимая контекст задачи, эти вопросы не имеют смысла. Не понимая контекста нужно узнавать именно его, а не задавать тупые вопросы.
Из десятилетнего опыта в разработке могу сказать что "понимая контекст задачи" самостоятельно делать предположения о граничных условиях и просто незафиксированных вещах - идея максимально всратая. Временами кончается говном в штанах и пиздюлями.

А первый вопрос из списка вообще максимально правильный.
Да ладно. Программист джава: у Мальвины было "1" яблоко, Буратино дал 2 яблока, в итоге у Мальвины 12 яблок!
причём тут джава? это и в js так, и в c#, и в php
С++ с PHP выдают "ты просишь сделать хуйню", js делает хуйню которую ты просишь.
у меня пхп делает херню, и ничего не выдаёт
проверяется в первом же онлайн пхп сендбоксе - https://bit.ly/3Bbbp6T
В java ошибка компиляции, так как он строго типизированный.
Он максимально правильный если желаешь повыебываться. А вот посыл пикчи похоже вполне верный, задай простой вопрос, и поломанный проф деформацией человек начнет нести хуйню, вместо того, что бы дать простой ответ.
Скорее уж тогда НЕчеловек-тестировщик, при чем тут компилятор, он за тебя не думает.
Когда работаешь с гоуту надо быть предельно простым.
Если ты не пишешь программы сразу на ассемблере, то ты не программист, очевидно.
Определяем херню, берем длину херни, берем херню...
1+1=2
b.o.g b.o.g16.07.202110:20ответитьссылка -6.5
а если так: 1+'1'=11 ?
эх... все-равно ошибка.
бля.. да это ж баянище древний, как и само программирование
это не ошибка, а вполне ожидаемое поведение.
просто с точки зрения не программистов это выглядит как ошибка, и вообще может зависеть от языка. особенно новичков сводит с ума, но они быстро привыкают :)
Блять..
Ебаный нахуй... я теперь понимаю, почему все так работает.
Даже с элементарной задачкой никто не может справится...
Куда то в дебри полезли...
Ебааать нахуй..
Я разочаловался в человечестве.
ты как будто никогда не работал с джунами. В человечестве он разочался
1+'1'=11, или даже более правильнее 1+'1'='11'
тут всё логично на самом деле
есть два значения 1 и '1', первое это число, а второе строка текста, ибо кавычки
и есть оператор +, который хрен знает что делает, но обычно это математическое сложение. в большинстве языков он ещё отвечает за складывание вместе строк. что именно будет происходить - сложение чисел или строк зависит от типа значений справа и слева от '+', а поскольку значения у нас разных типов мы должны или привести оба значения к числу или оба к строке. второе проще и логичнее, хотя бы потому что там могла быть и не '1' а к примеру 'один'. поэтому происходит преобразование числа к строке и получается '1'+'1', ну а так теперь у нас есть две строки, то между ними легко и непринуждённо происходит объединение их в одну строку (т.н. "конкатенация" строк), и получается строка '11'
просто нужно иметь ввиду что такие вот мелочи и не будет рваться шаблон. а некоторые языки с нормальной типизацией, или просто IDE с анализаторами тебе за такое неявное преобразование дадут по рукам
Дружок-пирожок, ты ошибся дверью: клуб математиков этажом выше, а тут it-юмор.

https://www.destroyallsoftware.com/talks/wat
Ебать вы пирожки.
Ваши объяснения тривиальной загадки само по себе как it-юмор от Петросяна.
Пиздец.
Это вопрос безотносительно какого-либо ЯП. Это вопрос на принцип мышления.
Ответ на него единственный и тривиальный - Истина.
Ты провалил задание, мешок мяса

11010000 10100001 11010000 10111011 11010000 10110000 11010000 10110010 11010000 10110000 100000 11010000 10011110 11010000 10111100 11010000 10111101 11010000 10111000 11010001 10000001 11010001 10000001 11010000 10111000 11010000 10111000
человек-гуманитарий
Программист =/= человек
Программист != человек, в крайнем случае Программист <> человек
Программист объект класса человек.
Вот тут я бы поспорил. Скорее тут наследование как от человека так и от калькулятора
КАРКУЛЯВШЕЛ ШВИХНУВША
ШПАШИВШЕ БОЖИВШАР
Ромб объект класса квадрат.
Наоборот. Квадрат это частный случай ромба, у которого углы равны.
Правильнее было бы сказать, что квадрат, ромб и прямоугольник это объекты класса параллелограмм с различной вариацией значений размера углов и длин сторон.
ты походу молодой программист. это классический "взлетит ли самолёт с ленты". вся суть спора в том, что для наследования важны лишь методы. если у тебя один метод - посчитать площадь например, то можно квадрат хоть от треугольника наследовать.
Ты пишешь про наследлвание классов, а я про объект класса. Мы говорим о разных вещах.
в интернете кто-то не прав? во первых от объектов можно наследоваться (в js например вообще нету классов), а во вторых изначально в ооп (smalltalk) нету классов вообще, там только объекты и сообщения. и вообще имхо в теории ооп - это типа наследование инкапсуляция полиморфизм, а на практике - стратегия, декоратор и визитор и больше нихуя.
Когда программист говорит "и вообще ооп это", то после этого обязательно должно быть и имхо, и перекреститься надо, и по сторонам посмотреть, а то вдруг
я не гуманитарий, но разве "отдал" не означает завершённое действие? 4 пункт кажется притянутым за уши, если не за какие-то более страшные места

а вот 7 и 8 хороши
Если данные отданы, совершенно не означает, что они корректно приняты где-то в другом месте.
Тьфу, яблоки конечно.
Означает в том случае, если отдача идет с гарантией доставки (глаза, уши). Либо если Мальвина успешно завершила транзакцию, сказав "Спасибо".
Мальвина сказала "Благодарю", а Буратино завис в цикле ожидания "Спасибо", т.к. вотчдог не был включен, а кодил транспортные функции джун.
Они все притянуты за уши, кроме первого.

2. два яблока, потому что мы очевидно находимся в контексте. Любой ЯП умеет в скоупы (кроме мб брейнфака и подобных)
3. Буратино и Мальвина используются единожды, дальше используются ссылки его/её/..., очевидно речь про один объект т.к. так работают ссылки
4. Нам плевать, взяла мальвина их или нет, главное что мы их отдали. Процесс отдачи подразумевает, что у нас стало на N яблок меньше. То же про 7 и 8
5. Мы предполагаем, что нам перечислены все действия которые произошли. Если мы в любую строчку можем вписать "лул у буратины появилось 100500 яблок" то смысла в задаче нет вообще.
6. То же что 4: нам плевать какой там стейт был (кроме изначального) - у нас есть констатация какой он в конце
9. Он не рекурсивный потому што блять в изначальном алгоритме есть только 3 шага безо всякой рекурсии.
Не сказал бы что прям все.
2. соглашусь, тут скорее доебка что не уточнилось что передается.
3. Множественное наследование никто не отменял, так что объект одновременно может быть "он" и "она"
4. Подразумевается транзакция, с откатом при ошибке. Грубо говоря мы отдали Мальвине яблоки, она повертела их в руках и вернула назад с фразой "не хочу".
5. Тоже не особо понял, особенно про "первый раз". Я бы больше поверил в то что процесс отдачи яблок является асинхроным и проверку оставшегося количества яблок делаем не дождавшись полной передачи.
6. Соглашусь.
7. Я бы сказал "Остапа понесло", ибо можно предположить что после передачи яблок Буратино превращается в полено.
8. Тоже что и 4.
9. Соглашусь.
3. наследование не при чем, но да, возможен алиасинг. Хотя если мы про языки вроде Rust то невозможен )
4. это додумки из разряда "между 2 и 3 строчками прибежал велоцераптор и сожрал мальвину".
5. выше пояснил что это
7. агась)
>>это додумки из разряда
Если код подразумевает a + b, то можно говорить о велоцерапторе. Если все же Буратино.ОтдатьЯблоки(Мальвина, 2), то вполне возможно что перед нами черный ящик и мы не уверены на 100% что происходит внутри (либо наоборот знаем что возможны исключительные ситуации). В целом этот тезис граничит с 7-м утверждением, ибо напридумывать ситуаций можно миллион. Ошибка выполнения -- вполне типичная ситуация (хоть и далеко не обязательная).
a + b это сахар для a.add(b), т.е. все тот же черный ящик. В котором может происходить что угодно. Вон, плюсоидам показалось разумным сделать из оператора битового сдвига запись байт в поток.

Никогда не знаешь, чего от операторов ожидать.
Буратино дали 3 яблока это и есть иницализация начального состояния субъекта, никаких других данных о Буратине нет, поэтому используется принцип бритвы Оккама.
"Два он отдал Мальвине" - это операция менящее состояние интересующего нас субъекта. Следуя принципу инкапсуляции нас не интересует чего там у Буратино может быть еще два. Задача рассматривается как целостный контекст, из которого следует что "он" - субъект задачи, то бишь Буратино, а "два" - количетсвенное выражение объекта операции, то бишь яблоки. Мальвина - внешний актор, с которым взаимодействует наш субъект.
"Сколько яблок у него осталось?" - операция чтения текущего состояния нашего субъекта.
Ответ: 1.
А то что в посте - это типичный overthinking
А потом выясняется, что заказчик думал совсем иначе.
Ничего страшного, у нас есть еще один спринт.
Это оверсинкин, косящий под тупейший компилятор. Автор доебался до прямого объявления переменных, синтаксиса, операндов итд. Пойдет для уровня "обхяснить что есть что деткам в школе", но к реальности не имеет никакого отношения.
Скорее всего автор - сам за школьной партой открыл книжку и начал придумывать смехуёчек.
В реальности всё ещё хуже и сложнее. Автор даже до половины возможных вариантов не доебался.
оверсинкин
Дали - это увеличение значения переменной. Первоначальная инициализация отсутствует и это значит, что в переменной содержится произвольный мусор.
Схуяли там мусор? Там начальное состояние "0", созданное условиями нашей вселенной. будь там мусор, при каждом прочтении ты бы видел
"У Буратино "ыволапр" яблок", "У Буратино "NULL" яблок", "У Буратино "Unexpected" яблок", "У Буратино 99999999999999999999999999 яблок"
Начальное состояние может быть не определено вовсе. У нас даже не ясно к какому типу относится Буратино - Ожившее дерево, Человек, или вообще инстанс родительского класса Гуманоид. Например, Буратино может быть сделан из яблони и яблоки на нём тупо растут сами. И начальное состояние по яблокам для него >0
Для яблони начальное состояние кол-ва яблок >0? Проклевывается такой росток из семечки. Только-только солнцу первые листочки показал, а уже двадцать кило яблок на нем, собирай-не хочу, только ведра успевай подносить.
Начальное состояние буратины по яблокам, а не яблони. Его вполне могли выстрогать из уже плодоносящей яблони, с яблоками.
Если его выстрогали из яблони с яблоками, то яблоки все еще принадлежат яблоне а не ему. ну или это зависит от того, кто его строгал. Как выше заметили - бритва Оккама. Давай обрежем ей этот диалог?
Давайте
А если Буратино сидит в ящике Шрёдингера?
А если бы да кабы во рту вырасли грибы
Программист из вас ещё тот.
Как ты это понял?
тогда вся конструкция оборачивается в монаду maybe
А теперь представь, что это не задача в вакууме, а часть большого проекта. Там ещё вдвое больше вопросов можно будет придумать не напрягаясь.
А теперь представь бритву Оккама. Возьми ее в руки и отсеки все лишнее. И опа - это снова задача в вакууме и никакого большого проекта нет! Чудеса!
Это просто разные ситуации, бритва Оккама тут не при чём
Ты начал на одну реальную ситуацию, где асбтрактаная задачка в вакууме, накручивать лишние сущности и придумывать какой-то большой проет. Вот чтоб такой ерундой не страдать и нужна бритва Оккама
Формально инициализацией ( созданием ) объекта буратино занимался Папа Карло.
И как мы знаем яблок он ему не давал.
Можно, конечно, повыебываться, и сказать что папка карло лишь один из фабричных классов участвующих в цепочке создания буратино.
В таком случае получается что кто изначальный инициализатор класса буратино нам неизвестно.
Получается что все что мы знаем что Класс фабрики ( а возможно бридж класс ( соединяющий класс) ) Алкаш Джузеппе передал неизвестный ему объект ( говорящее полено ) классу Карло, который проверив объект по принципу "может говорить" сделал из него Ребенка.
Буратино дали 3 яблока, но ему криво прописали руки и яблоки до него "не дошли". Допустим, что мы проинициализировали переменную с яблоками нулём, но мы же считаем яблоки объектами материального мира(мы же не можем держать в руках отрицательное количество), поэтому будем хранить их количество в беззнаковом целом (например, uint32). Далее, при передачи яблок мы должны увеличить счётчик у Мальвины на 3 и уменьшить на столько же у Буратино. Если не делать проверку корректность - по завершению взаимодействия у Буратино останется 4294967293 яблока.
Вот для таких и придуман принцип KISS, чтобы не городили целый класс для операции сложения
А это смотря что складывать. Для сложения матриц класс можно и сделать.
Или проведение банковских транзакций.
There are two types of people in this world:
- those who can extrapolate from incomplete data
учёные из центра незавершённых исследований доказали, что.
0: этот список должен начинаться с нуля.
110100001010001011010001100010110010000011010000101111111101000010111000110100001011010011010000101111101101000110000000
что такое "два"? написано буквами, а не цифрой, значит это не количество. может это стул под названием "два" или еще что
Нужен предпроектный анализ. Стоимость 5 000 €. Ориентировочные сроки - 2 недели. Если по окончанию анализа будет принят проект, то стоимость анализа войдёт в стоимость проекта.
Neo Neo16.07.202111:30ответитьссылка 0.7
Вы что там, деньги пилите? Кто 5000 евро за две недели освоит? Нате вам 10000 и раньше чем через полгода не возвращайтесь.
Это все, конечно, хорошо, но термин "Буратино" нуждается в уточнении. Буратино - это единственное или множественное число? Что мешает предположить что в условии задачи "2 Буратино дали 3 яблока" и кому они их дали?
Если серьёзно, этот пост отлично иллюстрирует, почему иногда заказчику кажется что "чё там разрабатывать целый день, 3-2 в коде написал и готово", а на деле нужно учесть примерно вот такое количество проблем, а ещё и оттестировать и найти оставшиеся, о которых ты не подумал.
Читаю сейчас Umineko и там именно такая извращенная логика и аргументация и применяется для отрицания ведьмы :D
Если бы Беатриче первые два предложения произнесла красным, а потом спросила бы у Батлера, сколько яблок осталось, у него были бы все нижеперечисленные способы, чтобы выкрутиться и не признавать одно единственно оставшееся яблоко!
Rimfa:
Мальчик упал с четырёх ступенек и сломал ногу. Сколько ног сломает мальчик, если упадёт с сорока ступенек?

AzazeLHAck:
Ответ не может быть однозначным

Rimfa:
В смысле?

AzazeLHAck:
1) Мы не знаем, кому он сломал ногу.
2) Не факт, что за каждые 4 ступеньки он будет и далее ломать одну ногу (будь то себе, или кому-либо).
3) Если ноги всё же его, то после первых восьми ступенек ноги кончатся, и он начнёт ломать всё остальное и к концу сломаны будут даже уши.
4) Важен размер тех сорока ступенек. Если масштаб 1:10, то он по-прежнему сломает одну ногу.
5) Если учесть теорию вероятности, то сломаться могут ступеньки, а не ноги.
6) Гравитация и сила трения...
Сложная задача.

Rimfa:
ОДНУ ОН СЛОМАЕТ! ПЕРВАЯ УЖЕ СЛОМАНА НА ЧЕТЫРЁХ СТУПЕНЬКАХ!!!

Rimfa:
ТЫ СЛОЖНЫЙ, А НЕ ЗАДАЧА!!! КОМПЬЮТЕРА КУСОК!!!
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
Задачка: "Когда мне было 4, моей сестре было 2. Сейчас мне 44. Сколько моей сестре? when I was 4, my sister was 2.1 am now 44. How old is mi sister? Сложная задача. Ей может быть 42, но также может быть 41 или 43, ведь в условии не говорится, когда у них дни рождения. Также ее может уже не быть в
подробнее»

Буквы на белом фоне тестировщик задача it-юмор geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор

Задачка: "Когда мне было 4, моей сестре было 2. Сейчас мне 44. Сколько моей сестре? when I was 4, my sister was 2.1 am now 44. How old is mi sister? Сложная задача. Ей может быть 42, но также может быть 41 или 43, ведь в условии не говорится, когда у них дни рождения. Также ее может уже не быть в
Мой десятилетий сын программирует лучше вас. 10 июляТестовый вопрос для 6-ти летних детей при отборе для поступления в Школу «сократиков» Собака - 3 Утка - 3 Корова - 2 Кукушка - 4 Овиа - 2 Свинья - 3 Ослик - ? Петух - 8 Д Тестовый вопрос для 6-ти летних детей при отборе для поступления в Школу «сократиков»: Собака - 3 Утка - 3 Корова - 2 Кук
подробнее»

ChatGPT нейронные сети Буквы на белом фоне geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор задача

Тестовый вопрос для 6-ти летних детей при отборе для поступления в Школу «сократиков» Собака - 3 Утка - 3 Корова - 2 Кукушка - 4 Овиа - 2 Свинья - 3 Ослик - ? Петух - 8 Д Тестовый вопрос для 6-ти летних детей при отборе для поступления в Школу «сократиков»: Собака - 3 Утка - 3 Корова - 2 Кук