Я ищу способ преобразовать любое число в процент следующим образом:
1.00 is 50%
числа ниже 1,00 приближаются к 0% логарифмически
- #P3# <блочная цитата> #P4# блочная цитата>
Я уверен, что это просто сделать, но я не могу вспомнить, как это сделать.
Я ищу способ преобразовать любое число в процент следующим образом:
1.00 is 50%
числа ниже 1,00 приближаются к 0% логарифмически
Я уверен, что это просто сделать, но я не могу вспомнить, как это сделать.
попробуй 1 / (1 + e^(1-x))
это логистическая функция, сдвинутая на 1 единицу
Если вы хотите, чтобы он приближался быстрее, вы можете изменить e на что-то более высокое.
Изменить:
чтобы иметь f(0) = 0, вы можете использовать 1 - 2^(-x)
Когда вы говорите логарифмически, вы имеете в виду асимптотически? Если это так, то «y должен приближаться к 0, поскольку x становится бесконечно малым с положительной стороны» просто означает, что f (0) = 0, если f непрерывно. В этом случае будет работать x/(x+1): http://www.wolframalpha.com/input/?i=x%2F%28x%2B1%29
как насчет y = f(t) = 1 - exp(-t/tau)
?
Для t, близкого к 0, y приблизительно равно t/tau. Для t, стремящегося к бесконечности, y асимптотически приближается к 1.
Что касается подхода f(1)=0,5, его можно использовать для решения при tau = 1/log(2).
Из того, что вы описываете, я слышу график x в кубе - очень простой и должен быть эффективным на большинстве языков.
http://jedsmith.org/static/S01813305.png
Это было построено с помощью y=(x-1)^3+1
(трансформируется, чтобы сделать (1,1)
исходной точкой). Вы можете, конечно, сделать результаты в процентах, просто умножив их на 50.
Вы, в конечном счете, пытаетесь найти эффективное решение, дающее примерное процентное поведение на языке программирования, а не на Mathematica, верно?
y
становится больше 100? Я дал вам кривую, вам решать масштабировать и манипулировать для получения желаемых результатов. Вы не указали свои диапазоны и ограничения каким-либо разумным образом, и мы работаем с данными, которые нам предоставлены. Масштабируйте выражение и не пытайтесь копировать и вставлять его, не поработав с ним. Я дал вам кривую, а не решение.
- person Jed Smith; 28.11.2009