Факториал, почему его нет в стандартной библиотеке
От: TarasKo Голландия  
Дата: 30.05.08 13:38
Оценка:
Сообственно почему? Спросили на собеседовании, потом сказали правильный ответ. Но сейчас меня начали одолевать кое-какие сомнения

05.06.08 16:31: Перенесено модератором из 'C/C++' — всеохватное обсуждение — и про гамма-функцию, и про методику интервью, и вообще... — Кодт
Re: Факториал, почему его нет в стандартной библиотеке
От: Сергей Мухин Россия  
Дата: 30.05.08 13:45
Оценка:
Здравствуйте, TarasKo, Вы писали:

TK>Сообственно почему? Спросили на собеседовании, потом сказали правильный ответ. Но сейчас меня начали одолевать кое-какие сомнения


а почему нет гамма ф-ии? ответили?
---
С уважением,
Сергей Мухин
Re: Факториал, почему его нет в стандартной библиотеке
От: Conr Россия  
Дата: 30.05.08 13:45
Оценка: 1 (1)
Здравствуйте, TarasKo, Вы писали:

TK>Сообственно почему? Спросили на собеседовании, потом сказали правильный ответ. Но сейчас меня начали одолевать кое-какие сомнения

Имхо, для факториала все "разумные" результаты проще посчитать заранее. Слишком быстро переполнение возникнет.
Re: Факториал, почему его нет в стандартной библиотеке
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 30.05.08 13:49
Оценка: +2 :)
Здравствуйте, TarasKo, Вы писали:

TK>Сообственно почему? Спросили на собеседовании, потом сказали правильный ответ. Но сейчас меня начали одолевать кое-какие сомнения


И какой же он, этот правильный ответ? Не томите!


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[2]: Факториал, почему его нет в стандартной библиотеке
От: Сергей Мухин Россия  
Дата: 30.05.08 13:50
Оценка: :))
Здравствуйте, eao197, Вы писали:

E>Здравствуйте, TarasKo, Вы писали:


TK>>Сообственно почему? Спросили на собеседовании, потом сказали правильный ответ. Но сейчас меня начали одолевать кое-какие сомнения


E>И какой же он, этот правильный ответ? Не томите!


правильный может быть только со ссылкой на C & R. Иначе это в той или иной степени предположение.
---
С уважением,
Сергей Мухин
Re[3]: Факториал, почему его нет в стандартной библиотеке
От: TarasKo Голландия  
Дата: 30.05.08 14:56
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>Здравствуйте, eao197, Вы писали:


E>>Здравствуйте, TarasKo, Вы писали:


TK>>>Сообственно почему? Спросили на собеседовании, потом сказали правильный ответ. Но сейчас меня начали одолевать кое-какие сомнения


E>>И какой же он, этот правильный ответ? Не томите!


СМ>правильный может быть только со ссылкой на C & R. Иначе это в той или иной степени предположение.


Ну ссылок на C&R мне естественно не дали, наверно потому что немного растерялся и не попросил.
Начал рассуждать, сказал что требования к функциям в стандартной библиотеке: эффективность и удобство. Привел два примера реализации на этапе компиляции и на этапе выполнения. Сказал что и тот и другой способ удовлетворяют обеим требованиям, хотя может быть не внесли потому что факториал можно посчитать только для небольшого количества натуральных чисел, иначе будет переполнение, а это в чём то неудобно. После этого на меня начали наседать так почему всё-таки не включили? Я начал ходить кругами вокруг того что сказал, мне сказали "ну что ж вы претендуете на Seniour Software developer/Team leader и не можете сказать почему стоит включать тут или иную функцию в библиотеку" (что помоему не очень политкорректно) потом добавили в "...стандартную библиотеку" Ну вообщем мне сказали то что хотели от меня услышать, он вполне логичен, и до него мне остался один шаг, хотя не очевидный. Вообще эту причину трудно понять, пока не попишешь сам STL.

Скоро напишу то, что мне сказали. Кстати я собеседовался не в яндекс и не гугл и не микрософт и даже не в комитет по стандартизации С++ или С но всё-таки на Seniour Software developer/Team leader

Интересно услышать ваше мнение, насколько вопрос подобного плана уместен в обычной компании?
Вы бы ответили?
Re[4]: Факториал, почему его нет в стандартной библиотеке
От: TarasKo Голландия  
Дата: 30.05.08 14:58
Оценка:
Здравствуйте, TarasKo, Вы писали:

TK>Здравствуйте, Сергей Мухин, Вы писали:


СМ>>Здравствуйте, eao197, Вы писали:


E>>>Здравствуйте, TarasKo, Вы писали:


TK>>>>Сообственно почему? Спросили на собеседовании, потом сказали правильный ответ. Но сейчас меня начали одолевать кое-какие сомнения


E>>>И какой же он, этот правильный ответ? Не томите!


СМ>>правильный может быть только со ссылкой на C & R. Иначе это в той или иной степени предположение.


TK>Ну ссылок на C&R мне естественно не дали, наверно потому что немного растерялся и не попросил.

TK>Начал рассуждать, сказал что требования к функциям в стандартной библиотеке: эффективность и удобство. Привел два примера реализации на этапе компиляции и на этапе выполнения. Сказал что и тот и другой способ удовлетворяют обеим требованиям, хотя может быть не внесли потому что факториал можно посчитать только для небольшого количества натуральных чисел, иначе будет переполнение, а это в чём то неудобно. После этого на меня начали наседать так почему всё-таки не включили? Я начал ходить кругами вокруг того что сказал, мне сказали "ну что ж вы претендуете на Seniour Software developer/Team leader и не можете сказать почему стоит включать тут или иную функцию в библиотеку" (что помоему не очень политкорректно) потом добавили в "...стандартную библиотеку" Ну вообщем мне сказали то что хотели от меня услышать, он вполне логичен, и до него мне остался один шаг, хотя не очевидный. Вообще эту причину трудно понять, пока не попишешь сам STL.

TK>Скоро напишу то, что мне сказали. Кстати я собеседовался не в яндекс и не гугл и не микрософт и даже не в комитет по стандартизации С++ или С но всё-таки на Seniour Software developer/Team leader


TK>Интересно услышать ваше мнение, насколько вопрос подобного плана уместен в обычной компании?

TK>Вы бы ответили?

Добавлю что компания не пишет никаких библиотек на продажу или широкое пользование, обычный конечный продукт.
Re[4]: Факториал, почему его нет в стандартной библиотеке
От: Ovl Россия  
Дата: 30.05.08 15:00
Оценка: 1 (1) +9 :)
не понял какой-же все-таки ответ. но в голову приходит только: "потому что она на фиг никому не нужна"
Read or Die!
Как правильно задавать вопросы
Как правильно оформить свой вопрос
Автор: anvaka
Дата: 15.05.06
Re[4]: Факториал, почему его нет в стандартной библиотеке
От: Сергей Мухин Россия  
Дата: 30.05.08 15:00
Оценка:
Здравствуйте, TarasKo, Вы писали:

TK>Интересно услышать ваше мнение, насколько вопрос подобного плана уместен в обычной компании?


Любой вопрос уместен. За 20-30 мин (а больше жалко на первой стадии собеседования) надо понять, что за человек, как себя ведет если не знает ответа, как мыслит и тп.

TK>Вы бы ответили?


тогда машины были 16битные и факториал был бы макс 8! (если я правильно его считаю). т.е. довольно не интересная ф-ия.
---
С уважением,
Сергей Мухин
Re[5]: Факториал, почему его нет в стандартной библиотеке
От: TarasKo Голландия  
Дата: 30.05.08 15:07
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>Здравствуйте, TarasKo, Вы писали:


TK>>Интересно услышать ваше мнение, насколько вопрос подобного плана уместен в обычной компании?


СМ>Любой вопрос уместен. За 20-30 мин (а больше жалко на первой стадии собеседования) надо понять, что за человек, как себя ведет если не знает ответа, как мыслит и тп.


TK>>Вы бы ответили?


СМ>тогда машины были 16битные и факториал был бы макс 8! (если я правильно его считаю). т.е. довольно не интересная ф-ия.


Да, даже для 64 битных машин особо большой факториал не посчитать. Не думаю что больше 100. Но я об этом уже говорил что мало область определения фактически очень маленькая. Однако на меня наседали и спрашивали так всё-таки почему?
Re[5]: Факториал, почему его нет в стандартной библиотеке
От: TarasKo Голландия  
Дата: 30.05.08 15:09
Оценка:
Здравствуйте, Ovl, Вы писали:

Ovl>не понял какой-же все-таки ответ. но в голову приходит только: "потому что она на фиг никому не нужна"


Хороший ответ, разумный и логичный. Действительно фактор как таковой нужен крайне редко.
Но так отвечать на собеседовании не хорошо
Re[5]: Факториал, почему его нет в стандартной библиотеке
От: TarasKo Голландия  
Дата: 30.05.08 15:11
Оценка:
Здравствуйте, Сергей Мухин, Вы писали:

СМ>Здравствуйте, TarasKo, Вы писали:


TK>>Интересно услышать ваше мнение, насколько вопрос подобного плана уместен в обычной компании?


СМ>Любой вопрос уместен. За 20-30 мин (а больше жалко на первой стадии собеседования) надо понять, что за человек, как себя ведет если не знает ответа, как мыслит и тп.


TK>>Вы бы ответили?


СМ>тогда машины были 16битные и факториал был бы макс 8! (если я правильно его считаю). т.е. довольно не интересная ф-ия.


На технические вопросы предшествующие этому я ответил нормально. Сам собеседую людей, ни разу мне так подробно никто не отвечал, с альтернативными вариантами возможными проблемами доводами за и против. Этот вопрос был ближе к концу
Re[6]: Факториал, почему его нет в стандартной библиотеке
От: Ovl Россия  
Дата: 30.05.08 15:11
Оценка: :)))
Здравствуйте, TarasKo, Вы писали:

TK>Здравствуйте, Ovl, Вы писали:


Ovl>>не понял какой-же все-таки ответ. но в голову приходит только: "потому что она на фиг никому не нужна"


TK>Хороший ответ, разумный и логичный. Действительно фактор как таковой нужен крайне редко.

TK>Но так отвечать на собеседовании не хорошо

тогда второй вариант: придется объяснять что такое факториал индусам
Read or Die!
Как правильно задавать вопросы
Как правильно оформить свой вопрос
Автор: anvaka
Дата: 15.05.06
Re[7]: Факториал, почему его нет в стандартной библиотеке
От: Сергей Мухин Россия  
Дата: 30.05.08 15:13
Оценка:
Здравствуйте, Ovl, Вы писали:


Ovl>>>не понял какой-же все-таки ответ. но в голову приходит только: "потому что она на фиг никому не нужна"


TK>>Хороший ответ, разумный и логичный. Действительно фактор как таковой нужен крайне редко.

TK>>Но так отвечать на собеседовании не хорошо

Ну тогда "потенциальный круг пользователей данной ф-ией стремится к 0"

Ovl>тогда второй вариант: придется объяснять что такое факториал индусам


тогда их не было
---
С уважением,
Сергей Мухин
Re: Факториал, почему его нет в стандартной библиотеке
От: remark Россия http://www.1024cores.net/
Дата: 30.05.08 15:13
Оценка: 1 (1) +1
Здравствуйте, TarasKo, Вы писали:

TK>Сообственно почему? Спросили на собеседовании, потом сказали правильный ответ. Но сейчас меня начали одолевать кое-какие сомнения


Могу предположить:
В стандартную библиотеку включаются только те функции, которые имеют одно оптимальное решение, т.е. так сказать "без-вариантные", т.е. если бы кому-то пришла в голову идея реализовать такую функцию, то он всё равно бы реализовал аналогичным способом, т.е. не получил бы никакого выигрыша по сравнению со стандартной реализацией. В частности такими функциями являются функции, которые имеют аппаратную поддержку на большинстве платформ.
Для факториала явная неоднозначность — толи реализовывать через вычисления, толи через таблицу. Трейдоф скорость-память. Комитет по стандартизации просто не может взять на себя ответственность однозначно разрешить этот трейдоф для всех приложений.

з.ы. хотя, конечно, например для функции сортировки тоже приходится выбирать некий трейдоф, тут тоже не совсем однозначно. но для неё хотя бы определили, что что вычислительная сложность O(NlogN)...


1024cores &mdash; all about multithreading, multicore, concurrency, parallelism, lock-free algorithms
Re: Факториал, почему его нет в стандартной библиотеке
От: Bell Россия  
Дата: 30.05.08 15:17
Оценка:
Здравствуйте, TarasKo, Вы писали:

TK>Сообственно почему? Спросили на собеседовании, потом сказали правильный ответ. Но сейчас меня начали одолевать кое-какие сомнения


Во-первых, область определения очень сильно ограничена.
Во-вторых, факториал не самая востребованная функция, ИМХО. Мне вот например ни разу не понадобилась
В-третьих, имеет элементарную реализацию.
Любите книгу — источник знаний (с) М.Горький
Re: Факториал, почему его нет в стандартной библиотеке
От: Cyberax Марс  
Дата: 30.05.08 15:18
Оценка: :))
Здравствуйте, TarasKo, Вы писали:

TK>Сообственно почему? Спросили на собеседовании, потом сказали правильный ответ. Но сейчас меня начали одолевать кое-какие сомнения

Как почему? Чтобы каждый мог проверить как работает хвостовая рекурсия!
Sapienti sat!
Re[8]: Факториал, почему его нет в стандартной библиотеке
От: Ovl Россия  
Дата: 30.05.08 15:18
Оценка:
тут подумалось:
мне почему-то кажется, что проблема в том, что функция допускает рекурсивную реализацию
Read or Die!
Как правильно задавать вопросы
Как правильно оформить свой вопрос
Автор: anvaka
Дата: 15.05.06
Re[2]: Факториал, почему его нет в стандартной библиотеке
От: TarasKo Голландия  
Дата: 30.05.08 15:20
Оценка:
Здравствуйте, remark, Вы писали:

R>Здравствуйте, TarasKo, Вы писали:


TK>>Сообственно почему? Спросили на собеседовании, потом сказали правильный ответ. Но сейчас меня начали одолевать кое-какие сомнения


R>Могу предположить:

R>В стандартную библиотеку включаются только те функции, которые имеют одно оптимальное решение, т.е. так сказать "без-вариантные", т.е. если бы кому-то пришла в голову идея реализовать такую функцию, то он всё равно бы реализовал аналогичным способом, т.е. не получил бы никакого выигрыша по сравнению со стандартной реализацией. В частности такими функциями являются функции, которые имеют аппаратную поддержку на большинстве платформ.
R>Для факториала явная неоднозначность — толи реализовывать через вычисления, толи через таблицу. Трейдоф скорость-память. Комитет по стандартизации просто не может взять на себя ответственность однозначно разрешить этот трейдоф для всех приложений.

R>з.ы. хотя, конечно, например для функции сортировки тоже приходится выбирать некий трейдоф, тут тоже не совсем однозначно. но для неё хотя бы определили, что что вычислительная сложность O(NlogN)...


R>


Да! Примерно это я тоже говорил, что одна реализация подходит для того случая другая для другого. Но на самом деле это не причина. Ведь есть же sort stable_sort. Одни используют одно, другие другое, в зависимости от задачи.

Ответ который мне дали, был другой
Re[6]: Факториал, почему его нет в стандартной библиотеке
От: Roman Odaisky Украина  
Дата: 30.05.08 15:22
Оценка:
Здравствуйте, TarasKo, Вы писали:

СМ>>тогда машины были 16битные и факториал был бы макс 8! (если я правильно его считаю). т.е. довольно не интересная ф-ия.


TK>Да, даже для 64 битных машин особо большой факториал не посчитать. Не думаю что больше 100. Но я об этом уже говорил что мало область определения фактически очень маленькая. Однако на меня наседали и спрашивали так всё-таки почему? :maniac:


100! ≈ 10¹⁵⁸ ≈ 2⁵²⁴.
До последнего не верил в пирамиду Лебедева.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.