Python файлы
капитан флинт зарыл клад на острове сокровищ. он оставил описание, как найти клад. описание состоит из строк вида: "north 5", где слово – одно из "north", "south", "east", "west", – задает направление движения, а число – количество шагов, которое необходимо пройти в этом направлении.
напишите программу, которая по описанию пути к кладу определяет точные координаты клада, считая, что начало координат находится в начале пути, ось ox направлена на восток, ось oy – на север.
входные данные
на вход подается последовательность строк указанного формата. гарантируется, что числа не превосходят 108.
выходные данные
необходимо вывести координаты клада – два целых числа через пробел. гарантируется, что эти числа не превосходят 108.
Объяснение:
1) четным. Функция a mod 2 возвращает остаток от деления числа а на 2.
Если остаток равен 0, то число а четное.
2) 20.
a = 100; b = 30; a = 100 - 3*30 = 10
c = b - a = 30 - 10 = 20
3) if переводится как если, и не только в условном операторе, а вообще по-английски.
4) (x=3) or (x=4).
Вообще-то любое из этих выражений может быть использовано, как условие.
Если нет проверки на равенство числу, то подразумевается проверка на равенство нулю.
Но, скорее всего, имеется ввиду именно это выражение.
5) if a<b then min := a; else min := b;
Ошибка: после min := a точка с запятой не нужна.
6) Условие: a < 17
7) Нет верного ответа, потому что не бывает треугольника с тремя прямыми углами.
8) Не могу ответить, потому что нет фрагмента программы.
Воть
Объяснение:
Это ж всё брутфорс, это ж несерьезно :)
На самом деле, конечно, перебор здесь вполне подходит, и можно дать ему границы сразу — по количеству цифр, по максимальной цифре. Но есть же и аналитический метод.
350214х = 11892410
Это означает, что
3x5 + 5x4 + 0x3 + 2x2 + 1x + 4 = 11892410
или
3x5 + 5x4 + 2x2 + x – 118920 = 0
Классический многочлен пятой степени. И теперь нужно просто решить полиномиальное уравнение. По основной теореме алгебры у него будет пять комплексных корней, нас, правда, интересует только действительный, хорошо бы положительный, и хорошо бы целый :)
Из теоремы Абеля-Руффини известно, что аналитически мы такое уравнение не решим в общем случае, но я бы даже и пробовать не стал: на то придуманы численные методы, которых всяких есть многатыщ — выбрать можно по вкусу, начиная хоть с метода товарища Ньютона. Решаем, и получаем:
x = 8
Хорошо и красиво. Ну можете еще добить преподавателя комплексными корнями, сказав, что это же число записывается точно так же в системе счисления с основанием (-7.07949 - 4.865i) :)
поделиться улучшить этот ответ отслеживать
ответ дан
17 сен '11 в 11:58
Ali
2,109●88 серебряных знаков●1010 бронзовых знаков изменён
17 сен '11 в 12:17
получается только перебор? очень жалко что другого метода нет...))а "Это ж всё брутфорс, это ж несерьезно :)" - это как понять? чет не вкурил к чему это! ))) ну ладно + – Евгений536 17 сен '11 в 12:09
1
Я к тому, что другие ответы были про перебор. И это правильно, вообще-то, потому как перебрать десяток оснований легче, чем решить полином пятой степени. – Ali 17 сен '11 в 12:10
2
Не брутфорс, можно сделать бинарный поиск по X! :) – Михаил М 19 авг '13 в 14:27
добавить комментарий
голос «за»
4
голос «против»
Что бы перевести число с какой то системы счисления с основой Х в десятичную, нужно делать так: 1) начальная сумма 0 2) текущая цифра - самая первая 3) текущую сумму умножаем на основу Х 4) добавляем текущую цифру к сумме. 5) если справа ещё есть цифры - к пункту 3 иначе выход Так как вручную проверять все это лень, пишется небольшая программа, к примеру на питоне
def r(x):
return 3 * x + 5) * x + 0) * x + 2) * x + 1) * x + 4)
for i in range(6,10):
print i, r(i)
Начинаем с 6, так как все цифры в заданном числе точно меньше 6 и это будет минимально возможная основа. А верхняя 9, так как "визуально" число в системе счисления Х больше его записи в десятичной форме.
и конечный ответ - 8.