shurik-ua(27.04.2020)
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
я примерно так и полагал - найти номер самого старшего бита, а затем взять нижнюю половину бит как результат -
тоже самое только с логарифмами
возможно с ходу ошибки
щас проверю
logx = log(x)
logy = log(y)
a = (logx + logx)
b = (logy + logy)
c = (((a-b)+1)+b)
l = длина вектора
l = 10 ^ (((c))/2)
или
l = 10 ^ (((c))-(log(2)))
или
l = 10 ^ (((c))-0.3010)
или
l = 10 ^ ((((((logx + logx)-(logy + logy))+1)+(logy + logy)))-0.3010)
может можно сократить
с ходу не осилил
вот рабочее
после того как нашли вектор x y
x=3
y=4
sqr(3^2 + 4^2) = 5
logx = log(x)
logy = log(y)
logx = log(3)=0.4771
logy = log(4)=0.6020
a = (logx + logx)
b = (logy + logy)
a = (0.4771 + 0.4771) = 0.9542
b = (0.6020 + 0.6020) = 1.204
c = ((log(10 ^ (a-b)) + 1)+b)
c = ((log(10 ^ (0.9542-1.204)) + 1)+1.204) = 1.3979
l = длина вектора
l = 10 ^ (c/2)
l = 10 ^ (1.3979/2) = 4.9997 Ok
оно же
l = 10 ^ (((log(10 ^ ((logx + logx)-(logy + logy))) + 1)+(logy + logy))/2)
знать бы как инкриментить в логарифмах
можно было бы упростить
Последний раз редактировалось NEO SPECTRUMAN; 27.04.2020 в 23:49.
у нас же логарифм с основанием 2 - ну и целые числа должны быть.
а зачем туда обратно?
- - - Добавлено - - -
а на сколько древняя игра?\на чем?
2 128К таблицы не катит? (^2 и корень)
для нормального вычисления sqr(x^2+y^2)?
можно попробовать сделать чисто таблично
вообще на сколько позволяет память
там кило по 16 на таблицу например
младшие биты просто отбрасывать
и глянуть что будет
или это на спектрумах?
хотя так же можно и на спектрумах
Последний раз редактировалось NEO SPECTRUMAN; 28.04.2020 в 00:11.
shurik-ua(28.04.2020)
это на ПЦ - онлайн игра начала нулевых Dark age of Camelot
да таблицами пожалуй будет самое то )
тут немного прикинул
не самое то
чтоб уместить результат таблицы 2-й степени его нужно будет поделить на 65535
в итоге длин меньше 300 не будет находиться вообще
конечно это для диагонали FFFFxFFFF
если такой не будет
или есть определенная максимальная возможная длина
то можно повысить точности в несколько раз
но все равно будет не точно... (точность только на больших дистанциях)
- - - Добавлено - - -
по моей извращенной формуле
на оборот будет высокая точность на маленьких дистанциях
ну и так же понадобятся 2 128К таблицы (logx и a^x)
+куча сложений и вычитаний
Последний раз редактировалось NEO SPECTRUMAN; 28.04.2020 в 01:09.
там нужно меньше - максимальная длина при которой сервер шлёт пакет о другом игроке где-то примерно 6000
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)