Здравствуйте, kuzmaprutkov2, Вы писали:
K>Любые операции с double дадут нам неточные вычисления.
это да
по крайней мере у нас есть оценка сколько нам нужно разрядов (305780).
K>По-моему уже кто-то писал. Длинная арифметика + log(Y) возведение в степень, а в качестве умножений вспомогательных в log алго для степени — Карацуба.
Здравствуйте, shrecher, Вы писали:
S>Как такой вопрос на собеседовании, был задан на позиции C++ разработчика?
S>Написать код на доске для функции:
string Power( int X, short Y) // вернуть строчное представление результата X в степени Y
{
return lexical_cast<string>(X)+"^"+lexical_cast<string>(Y);
}
18.08.2011 21:29, shrecher пишет:
> Возможно это и так. Меня больше интересует адекватность этого вопроса. > Его задали моему знакомому и мы тут спорили о смысле спрашивать такое. > За много лет прогерской жизни я ни разу не писал ничего подобного.
Ну если простейший ответ с pow не удовлетворяет, то лучше всего
попрощаться с ними сразу.
19.08.2011 7:56, Centaur пишет:
> > Это вопрос на наличие bullshit detector’а. Когда задают такой вопрос, > ждут, что ты будешь спрашивать про ограничения. Как минимум — > переспросишь, действительно ли они хотят от тебя, чтоб ты реализовал им > bignum; и если да, то почему бы не принимать аргументы бигнумами, в > какой системе счисления должен быть результат, и требуется ли > обрабатывать случаи (X!=0 && Y<0), (X=0 && Y=0) и (X=0 && Y<0).
В таком варианте этот вопрос говорит об отсутствии четкой постановки
задач на этой конторе, или по крайней мере у этого начальника. Посему
нужно быть готовым что вам придется угадывать желания начальников и
удовлетворять их. Кому-то это нравиться, кому-то нет.
19.08.2011 10:22, sumson пишет:
> При проектировании подумайте о том, как ваше решение можно было бы локализовать на английский язык (тут обратите внимание, например, на цифру "двести", которая на английском будет состоять из двух слов). > > Укажите, сколько времени у вас заняло выполнение этого задания.
А вот это уже достаточно разумно и четко. Задание достаточно простое.
Такое можно и на собеседовании дать, если не верите, что соискатель
вообще программирует.
C>Это вопрос на наличие bullshit detector’а. Когда задают такой вопрос, ждут, что ты будешь спрашивать про ограничения. Как минимум — переспросишь, действительно ли они хотят от тебя, чтоб ты реализовал им bignum;
Задача поставлена четко: на вход даются int[b] X, [b]short Y. Если бы хотели маленькие значения, то наверное бы дали хотя бы short, short или uchar, uchar. Тем более, возврат ввиде строки, заначит нет ограничений на выходной размер. Можешь, конечно, переспросить надо ли "bignum", но явно получишь положительный вопрос.
C>и требуется ли обрабатывать случаи (X!=0 && Y<0), (X=0 && Y=0) и (X=0 && Y<0).
это уже автор реализации должен решать как обрабатывать входные данные.
Здравствуйте, Vzhyk, Вы писали:
V>Задание достаточно простое. V>Такое можно и на собеседовании дать, если не верите, что соискатель V>вообще программирует.
хорошо, жопустим вам дали такое задание на собеседовании,
алгоритм можете накидать побыстрому?
Я знаю, как управлять Вселенной. И скажите, зачем же мне бежать за миллионом?!(c)
Здравствуйте, -Dm-, Вы писали:
D>Здравствуйте, Доктор ТуамОсес, Вы писали:
ДТ>>>>А как же вторая часть вопроса ("почему?")?
D>А практическая польза данного упражнения есть ? D>1/3 тоже записать в виде конечной десятичной дроби нельзя, но на практике это ни кому не мешает.
Вы видимо далёкий от математики человек и Вам никогда не приходилось заниматься мат.моделированием и "численными методами" решения дифференциальных уравнений в частных производных.
19.08.2011 13:23, sumson пишет:
> хорошо, жопустим вам дали такое задание на собеседовании, > алгоритм можете накидать побыстрому?
Этот да.
Но, вероятнее всего не буду, потому как не буду работать с людьми,
которые ожидают обмана с первых же минут встречи (ожидание обмана от
всех вокруг — это чаще всего проекция собственного поведения или
комплекс — что одно, что другое плохо для меня).
Если же приходит студент на собеседование, то тогда данный тест разумен
— прошлого опыта у него обычно нет и имеет смысл посмотреть вообще на
то, как он пишет код.
Здравствуйте, Доктор ТуамОсес, Вы писали:
ДТ>Вот Вам ещё "вопрос на собеседовании" (взят из готовящегося сейчас мной к опубликованию нового бильда СБОРНИКА ВОПРОСОВ ПО С++:
ДТ>
Есть код:
ДТ>
ДТ>double x = 2.30;
ДТ>double y = 2.75;
ДТ>
ДТ>Вопрос:Какая переменная реально получит то значение, которое написано в её инициализаторе?
ДТ>И почему?
Обе. Если в Вашем языке программирования это не так, выкиньте его на помойку. Еще есть простой способ узнать, хорошо ли язык работает с числами с плавающей точкой — посчитать e^pi — pi.
Здравствуйте, Доктор ТуамОсес, Вы писали:
ДТ>Вы видимо далёкий от математики человек и Вам никогда не приходилось заниматься мат.моделированием и "численными методами" решения дифференциальных уравнений в частных производных.
И что ты с этим сакральным знанием будешь делать?
Использовать только те числа, что в степени двойки красиво вписываются?
Первый же корень разрушит стройную картину мира.
Хочешь мегаточности — используй fractional представление чисел.
Любой double — это приблизительное представление, и только в некоторых частных случаях для некоторых чисел — точное. Которое во время вычислений очень быстро превращается опять таки в приблизительное.
Здравствуйте, Banned by IT, Вы писали:
BBI>Здравствуйте, Доктор ТуамОсес, Вы писали:
ДТ>>Вы видимо далёкий от математики человек и Вам никогда не приходилось заниматься мат.моделированием и "численными методами" решения дифференциальных уравнений в частных производных. BBI>И что ты с этим сакральным знанием будешь делать? BBI>Использовать только те числа, что в степени двойки красиво вписываются? BBI>Первый же корень разрушит стройную картину мира. BBI>Хочешь мегаточности — используй fractional представление чисел. BBI>Любой double — это приблизительное представление, и только в некоторых частных случаях для некоторых чисел — точное. Которое во время вычислений очень быстро превращается опять таки в приблизительное.
Просто сталкивался, что далёким от реальности супер-мега-гуру программистам
(особенно недоучившимся студентам с повышенным ЧСВ) было впадлу вникать в такие вот
"мелочи"/"ерунду", а потом они долго вылавливали глюки, которые я вычислял "на раз"(R).
Здравствуйте, Banned by IT, Вы писали:
BBI>Здравствуйте, Доктор ТуамОсес, Вы писали:
ДТ>>Ну так чо? Народ? ДТ>>Сможете ответить?
BBI>Ой та ви какой то детской фигнёй страдаете.
Всегда когда-то начинали с ерунды/фигни.
Даже, ЕНИМП, сам Бил Гейтц начинал с того, что в папашином гараже какую ту фигню клепал
Здравствуйте, MaximUN, Вы писали:
MUN>Здравствуйте, shrecher, Вы писали:
S>>это уже автор реализации должен решать как обрабатывать входные данные.
MUN>Еще чего. Это должен решать заказчик, в данном случае — интервьювер.
Здравствуйте, Доктор ТуамОсес, Вы писали:
ДТ>Вы видимо далёкий от математики человек и Вам никогда не приходилось заниматься мат.моделированием и "численными методами" решения дифференциальных уравнений в частных производных.
ДТ>Поэтому так и говорите