Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flasher.ru > Флейм

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 06.04.2013, 17:38
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 11  
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
wvxvw, премного благодарен
Протестировал, получается почти то, что нужно. А так как мне не принципиально точное совпадение, этот вариант отлично подходит

Добавлено через 5 минут
А нет.. блин, не совсем правильно работает
Сделал это на ас3:
Код AS3:
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;
		}
В результате получается так:
Код AS3:
trace(getValue(16)); // 604
trace(getValue(8)); // 1133
trace(getValue(10)); // 1193
trace(getValue(20)); // 770
т.е. для чисел меньше, иногда выдает больший результат

Старый 06.04.2013, 18:31
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 12  
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ну тогда, наверное, имеет смысл задать значения для теоретически минимальных и максимальных входных параметров функции.

Да, и посчитать все Х полинома можно было бы за один проход, типа:
Код:
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.
Старый 07.04.2013, 20:07
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 13  
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Код AS3:
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 не получается

Если изменить на
Код AS3:
_health += int((int(_health / 97) * 15.19) / 10) * 10;
То результаты уже будут совсем не близкими

Добавлено через 10 минут
В общем, после кучи экспериментов с подстановкой чисел, пришел к такому алгоритму:
Код AS3:
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.
Старый 08.04.2013, 00:02
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 14  
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Теперь я знаю почему Фобос-грунт упал.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 08.04.2013, 08:26
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 15  
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
придется тебя убить, раз уж тайна раскрыта

Старый 08.04.2013, 14:58
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 16  
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
В начале...
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Тема во флейме, потому что ни под один другой раздел не подходит.
Потом...
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Сделал это на ас3:
А теперь читаем описание раздела флейм, самую нижнею строчку.
Цитата:
Флейм (просматривают: 5)
Раздел для болтовни и выпуска пара.
Алгоритмы и программирование обсуждаются в разделах AS 1/2, AS 3 и тп.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 15:47.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 15:47.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.