XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
YellowStar
poon
offline
Опыт: 15,144
Активность:
Возведение в степень, корень
Требуется функция которая возводит в степень, и выдаёт мне корень числа :].
офк возведение в степень очевидно
x*x = y
но вот как мне вычленить корень из y.
давайте, умы хгм, вы помогаете в святом деле инквизиции
Старый 16.08.2012, 13:40
Bornikkeny
Silenced by Bornikkeny
offline
Опыт: 24,410
Активность:
Я как то пробовал сделать это, но ничего не вышло...
Делал так
Создавал тригер который сравнивает
x*x=y
где х это переменная которая увеличивается, а y это вычисляемое число...
Старый 16.08.2012, 13:45
YellowStar
poon
offline
Опыт: 15,144
Активность:
Нет так не пойдет, у меня есть значения близкие к тысячам, которые офк, мне надо перебрать, у меня банально loop накроется.
Старый 16.08.2012, 13:56
Bornikkeny
Silenced by Bornikkeny
offline
Опыт: 24,410
Активность:
Может вы модифицируете мою идею? =)
Старый 16.08.2012, 14:03
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
Посмотри вот код из паскаля:
Код:
uses crt;
function Power(x,y:real):real;
begin
if x=0 then Power:=0
else if x>0 then Power:=exp(ln(x)*y)
else Power:=-exp(ln(abs(x))*y);
end;
var x,y:real;
begin
clrscr;
write('Число под корнем: ');readln(x);
write('Степень корня: ');readln(y);
write('Корень равен*: ',Power(x,1/y):0:3);
write(' или ');
write('В не сокращенном виде: ',power(x,1/y):0:10);
readln
end.


Загляни в функциях паскаля, там есть наверняка библиотека или что-то в роде того, оттуда и "импортируешь" в варик =)
P.S. самому тоже интересно заглянуть.
Старый 16.08.2012, 14:08
Bornikkeny
Silenced by Bornikkeny
offline
Опыт: 24,410
Активность:
Тоже интересно как будет работать) Но все таки на мою старую модель похожа частично =)
Старый 16.08.2012, 14:15
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,259
Активность:
YellowStar, Xipxop, Bornikkeny, мда изобретатели велосипеда...
((код jass
native SquareRoot takes real x returns real
))
Корень из числа в jass получают этой функцией. ей аналог есть во всех языках программирования, ну это элементарные математические действия...
Старый 16.08.2012, 14:17
Doc

offline
Опыт: 63,163
Активность:
quq_CCCP, лол тоже хотел это написать.
Для степени есть Pow.
Старый 16.08.2012, 14:18
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
офк вам нужен квадратны корень или какой другой степени? если другой то офк надо в ряды раскладывать
Старый 16.08.2012, 14:21
Doc

offline
Опыт: 63,163
Активность:
alexprey, а в дробную степень возвести нельзя?
Старый 16.08.2012, 14:25
YellowStar
poon
offline
Опыт: 15,144
Активность:
Если бы мне нужна была функция во второй степени я бы пользовался square root. Но мне нужна в третей степени, в пятой, в десятой итд...
Старый 16.08.2012, 14:29
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
Ну так, я и написал как возводится в дробную степень
Старый 16.08.2012, 14:29
YellowStar
poon
offline
Опыт: 15,144
Активность:
офк, все примерно должно выглядеть так.
от 1 до 100 - 5 степень
от 100 до 1000 - 4 степень
от 1000 до 10000 - 3 степень
от 10000 до infinite - 2 степень
ну наложением офк
Старый 16.08.2012, 14:30
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
Да, это все ифы...
И это не относится к делу...
Старый 16.08.2012, 14:32
YellowStar
poon
offline
Опыт: 15,144
Активность:
С if я сам поработаю, я просто описал что мне в итоге потребуется, чтобы не было повторных SquareRoot - :o
YellowStar добавил:
Кратные двойке степени, находятся легко :yes:, squareroot(squareroot
Старый 16.08.2012, 14:44
alexprey
познающий Unity
offline
Опыт: 68,501
Активность:
Doc, хмм, а ведь я и забыл
YellowStar,
function Root takes real value, real base returns real
	return Pow(value, 1. / base)
endfunction
Точность правда может хромать
Старый 16.08.2012, 15:02
YellowStar
poon
offline
Опыт: 15,144
Активность:
alexprey:
function Root takes real value, real base returns real
return Pow(value, 1. / base)
endfunction
function Root takes real value, real base returns integer
return R2I(Pow(value, 1. / base)+0.5)
endfunction
таким образом точнее будет?
Старый 16.08.2012, 15:57
Xipxop
Круче варика, только c++!
offline
Опыт: 7,646
Активность:
попробуй, калькулятор виндовский есть?
Все для теста есть, и почему люди, лучше сами потестить обязательно спросят других людей, которые по их мнению должны за них потестить...
Старый 16.08.2012, 16:02
YellowStar
poon
offline
Опыт: 15,144
Активность:
Потому что у меня такой характер
Старый 16.08.2012, 16:42
Xefion

offline
Опыт: 24
Активность:
function Root takes real value, real base returns real
return Pow(value, 1. / base)
endfunction
real округляется до тысячных
Старый 16.08.2012, 16:57
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 10:55.