#python #algorithm #math #mapping
#python #алгоритм #математика #сопоставление
Вопрос:
Я пытаюсь создать функцию, которая сопоставляет целое число X с десятичным 0.X без использования цикла.
Примеры:
- 4 -> 0.4
- 65 -> 0.65
- 1584 -> 0.1584
Я подумал, что мог бы сделать что-то вроде этого:
def mapToDec(x):
while x > 1:
x = x / 10
return x
Однако я ищу что-то более сложное, не требующее цикла, что-то, что, возможно, выглядело бы как математическая функция.
Комментарии:
1. Что это за язык? Пожалуйста, добавьте соответствующий тег.
2. @alexandrosangeli В вопросе не упоминается, какова цель, но, возможно, стоит отметить, что такая функция не обязательно будет обратимой, в том смысле, что вы не всегда сможете восстановить исходное целое число из значения с плавающей запятой.
Ответ №1:
Вы показали, что такая функция существует, реализовав ее. Если вы хотите его без цикла, как насчет
def mapToDec(x):
return x * 10 ** -(1 math.floor(math.log10(x)))
Комментарии:
1.
x / 10 ** (1 math.floor(math.log10(x)))
кажется, работает с большей точностью2. Спасибо, это в значительной степени то, что я искал.