![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
wvxvw, премного благодарен
Протестировал, получается почти то, что нужно. А так как мне не принципиально точное совпадение, этот вариант отлично подходит Добавлено через 5 минут А нет.. блин, не совсем правильно работает Сделал это на ас3: private function getValue(x:Number):int { return 9.2922e-08 * Math.pow(x, 8) + -2.0911e-05 * Math.pow(x, 7) + 1.9908e-03 * Math.pow(x, 6) + -1.0071e-01 * Math.pow(x, 5) + 2.8741e+00 * Math.pow(x, 4) + -4.4839e+01 * Math.pow(x, 3) + 3.4286e+02 * Math.pow(x, 2) + -9.5543e+02 * x + 8.3935e+02; } т.е. для чисел меньше, иногда выдает больший результат |
|
|||||
|
Modus ponens
|
Ну тогда, наверное, имеет смысл задать значения для теоретически минимальных и максимальных входных параметров функции.
Да, и посчитать все Х полинома можно было бы за один проход, типа: var result:Array = new Array(8);
var i:uint = 8;
var lastResult = x;
while (i--) {
result[i] = lastResult * x;
lastResult = result[i];
}
![]() А, прошу прощения, я сразу не понял, что случилось. ОК... надо думать. Что-то ничего типа b + c^x хорошего не придумывается. Показатель степени растет как-то непонятно: быстрее чем log(x), но медленнее чем x, но быстрее чем x/log(x)...
__________________
Hell is the possibility of sanity Последний раз редактировалось wvxvw; 06.04.2013 в 19:43. |
|
|||||
package { import flash.display.Sprite; public class Main extends Sprite { private var _health:int = 100; public function Main() { for (var i:int = 1; i < 75; i++) { getValue(); trace("HEALTH", _health, "LEVEL", i); } } private function getValue():void { _health += (int(_health / 97) * 15.19); } } } Если изменить на То результаты уже будут совсем не близкими Добавлено через 10 минут В общем, после кучи экспериментов с подстановкой чисел, пришел к такому алгоритму: private function getValue():void { _health += Math.round((int(_health / 100) * 15.1) / 10) * 10; } HEALTH 120 LEVEL 1 HEALTH 140 LEVEL 2 HEALTH 160 LEVEL 3 HEALTH 180 LEVEL 4 HEALTH 200 LEVEL 5 HEALTH 230 LEVEL 6 HEALTH 260 LEVEL 7 HEALTH 290 LEVEL 8 HEALTH 320 LEVEL 9 HEALTH 370 LEVEL 10 HEALTH 420 LEVEL 11 HEALTH 480 LEVEL 12 HEALTH 540 LEVEL 13 HEALTH 620 LEVEL 14 HEALTH 710 LEVEL 15 HEALTH 820 LEVEL 16 HEALTH 940 LEVEL 17 HEALTH 1080 LEVEL 18 HEALTH 1230 LEVEL 19 HEALTH 1410 LEVEL 20 HEALTH 1620 LEVEL 21 HEALTH 1860 LEVEL 22 HEALTH 2130 LEVEL 23 HEALTH 2450 LEVEL 24 HEALTH 2810 LEVEL 25 HEALTH 3230 LEVEL 26 HEALTH 3710 LEVEL 27 HEALTH 4270 LEVEL 28 HEALTH 4900 LEVEL 29 HEALTH 5640 LEVEL 30 HEALTH 6490 LEVEL 31 HEALTH 7460 LEVEL 32 HEALTH 8580 LEVEL 33 HEALTH 9860 LEVEL 34 HEALTH 11340 LEVEL 35 HEALTH 13050 LEVEL 36 HEALTH 15010 LEVEL 37 HEALTH 17280 LEVEL 38 HEALTH 19880 LEVEL 39 HEALTH 22870 LEVEL 40 HEALTH 26310 LEVEL 41 HEALTH 30280 LEVEL 42 HEALTH 34840 LEVEL 43 HEALTH 40090 LEVEL 44 HEALTH 46130 LEVEL 45 HEALTH 53090 LEVEL 46 HEALTH 61090 LEVEL 47 HEALTH 70300 LEVEL 48 HEALTH 80920 LEVEL 49 HEALTH 93140 LEVEL 50 HEALTH 107200 LEVEL 51 HEALTH 123390 LEVEL 52 HEALTH 142010 LEVEL 53 HEALTH 163450 LEVEL 54 HEALTH 188120 LEVEL 55 HEALTH 216520 LEVEL 56 HEALTH 249210 LEVEL 57 HEALTH 286840 LEVEL 58 HEALTH 330150 LEVEL 59 HEALTH 380000 LEVEL 60 HEALTH 437380 LEVEL 61 HEALTH 503410 LEVEL 62 HEALTH 579420 LEVEL 63 HEALTH 666910 LEVEL 64 HEALTH 767610 LEVEL 65 HEALTH 883520 LEVEL 66 HEALTH 1016930 LEVEL 67 HEALTH 1170480 LEVEL 68 HEALTH 1347210 LEVEL 69 HEALTH 1550640 LEVEL 70 HEALTH 1784780 LEVEL 71 HEALTH 2054270 LEVEL 72 HEALTH 2364450 LEVEL 73 HEALTH 2721470 LEVEL 74 Вопрос исчерпан, всем спасибо за участие! ![]() Последний раз редактировалось caseyryan; 07.04.2013 в 20:21. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
|
В начале...
Потом... А теперь читаем описание раздела флейм, самую нижнею строчку. Цитата:
|
![]() |
![]() |
Часовой пояс GMT +4, время: 15:47. |
|
|
« Предыдущая тема | Следующая тема » |
|
|