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

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 28.02.2013, 02:20
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 31  
Ответить с цитированием
GBee
 
Аватар для GBee

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

Старый 28.02.2013, 02:44
KumoKairo вне форума Посмотреть профиль Отправить личное сообщение для KumoKairo Найти все сообщения от KumoKairo
  № 32  
Ответить с цитированием
KumoKairo
 
Аватар для KumoKairo

Регистрация: Jan 2013
Сообщений: 550
Записей в блоге: 1
А нет, там с перезаписью массива проблемы, блин)
Ладно, потом поправлю, тут уже два способа и так предложили)

Старый 28.02.2013, 03:36
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 33  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Проверь на варианте -De-
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 28.02.2013, 03:49
Nooob вне форума Посмотреть профиль Отправить личное сообщение для Nooob Найти все сообщения от Nooob
  № 34  
Ответить с цитированием
Nooob
 
Аватар для Nooob

Регистрация: Mar 2007
Сообщений: 319
Цитата:
Сообщение от KumoKairo Посмотреть сообщение
А я таки тоже сделал своим алгоритмом
выдаёт такие значения при перезапуске:
1,1,0.5,0.01,0.01,0.01,1 (3.5299999999999994)
1,1,0.5,0.01,0.01,0.01,0.01 (2.539999999999999)
1,1,0.5,0.01,0.01,0.01,0.5 (3.0299999999999994)

нестабильно както, я думаю всё дело в рандоме

Старый 28.02.2013, 08:20
KumoKairo вне форума Посмотреть профиль Отправить личное сообщение для KumoKairo Найти все сообщения от KumoKairo
  № 35  
Ответить с цитированием
KumoKairo
 
Аватар для KumoKairo

Регистрация: Jan 2013
Сообщений: 550
Записей в блоге: 1
Не не, вы видимо не скопировали ту функцию toFixed
Дело в том, что в AS3 пониженная точность у double floating point значений, и часто при вычитании таких чисел, например
Код AS3:
trace(2.53 - 1);
trace(4.14 - 2);
результатом выдает 1.5299999993 и 4.13999995 соответственно. Эти проблемы точности простых вычислений много обсуждаются на stackOverflow, и там приняли использовать ту функцию округления.

Рандом там просто находит индекс перераскладываемого числа)

Старый 28.02.2013, 13:21
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 36  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
KumoKairo, работает медленнее перебора. Выдает неверный результат при входных данных [10, 11], 110, 11. Уходит в вечный цикл при входных данных [11, 10], 110, 11.
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 28.02.2013, 14:14
KumoKairo вне форума Посмотреть профиль Отправить личное сообщение для KumoKairo Найти все сообщения от KumoKairo
  № 37  
Ответить с цитированием
KumoKairo
 
Аватар для KumoKairo

Регистрация: Jan 2013
Сообщений: 550
Записей в блоге: 1
Да, я же написал что там косяки
Получилось совсем не так, как планировалось
Грубо говоря обычный жадный алгоритм с дополнением, которое неправильно работает

Старый 28.02.2013, 15:03
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 38  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Весело у вас тут))
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
 
	/**
	 * ...
	 * @author wolsh
	 */
	public class Main extends Sprite 
	{
		private var _coinsCount:uint = 7;
		private var _nominals:Array = [0.01, 0.05, 0.1, 0.2, 0.5, 1, 2, 5, 10, 50, 100, 500, 1000];
		private var _summ:Number = 125.15;
		private var _result:Array;
 
		public function Main():void 
		{
			_nominals = _nominals.sort(16);
			while (_nominals[_nominals.length - 1] > _summ) _nominals.pop();
 
			_result = new Array(_coinsCount);
			for (var i:uint = 0; i < _coinsCount; i++)
			{
				_result[i] = _nominals[0];
			}
 
			count:for (var n:uint = 0; n < _coinsCount; n++)
			{
				nominal:for (var c:uint = 1; c < _nominals.length; c++)
				{
					_result[n] = _nominals[c];
					if (summ(_result) < _summ)
					{
						continue nominal;
					}
					if (summ(_result) > _summ)
					{
						_result[n] = _nominals[c - 1];
						continue count;
					}
					if (summ(_result) == _summ)
					{
						break count;
					}
				}
			}
			if(summ(_result) == _summ) trace("Получилось!", _result, "(", summ(_result), ")");
			else trace("Близкий результат:", _result, "(", summ(_result), ")");
		}
 
		private function summ(array:Array):Number
		{
			var result:Number = 0;
			for (var i:uint = 0; i < array.length; i++)
			{
				result += array[i];
			}
			return Math.round(result * 100) / 100;
		}
	}
}
__________________
Reality.getBounds(this);

Старый 28.02.2013, 15:16
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 39  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
Я нуб. Я не знал, что можно вот так nominal:for.
__________________
мой пустой блог

Старый 01.03.2013, 01:15
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 40  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

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

Вот, собсно, с объяснениями и кодом. Если что не понятно, я перепишу на AS.
http://wiki.drewhess.com/wiki/SICP_exercise_2.19
__________________
Hell is the possibility of sanity

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

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

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


 


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


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