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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 03.08.2009, 01:37
Герыч вне форума Посмотреть профиль Отправить личное сообщение для Герыч Найти все сообщения от Герыч
  № 1  
Ответить с цитированием
Герыч
 
Аватар для Герыч

блогер
Регистрация: Apr 2009
Адрес: НиНо
Сообщений: 185
Записей в блоге: 12
По умолчанию По графам

Пишу сюда, потому что по общим вопросам программирования ветки нет
Итак, есть n вершин, у каждой может быть максимум k рёбер. Как посчитать, сколько у всего графа будет максимально рёбер?
Это мне нужно, чтобы оптимально просчитать размер пула для динамического создания связей в желе.

Добавлено через 5 минут
Пока получается наверно такая формула: round(n*k/2)

Старый 03.08.2009, 11:20
r_r_f_r вне форума Посмотреть профиль Отправить личное сообщение для r_r_f_r Найти все сообщения от r_r_f_r
  № 2  
Ответить с цитированием
r_r_f_r

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
Используй списки, с ними флеш отлично дружит, только перед помещением в пул обязательно линки на частицы желе затереть нужно.

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

блогер
Регистрация: Apr 2009
Адрес: НиНо
Сообщений: 185
Записей в блоге: 12
=) я сразу так сделал. Вопрос не в этом, вопрос в оптимальном размере для пула. Для каждой частицы я разрешаю максимум k связей, поэтому узнав эту формулу я узнаю оптимальный размер для пула. Вот как)
P.S. пул - это у меня связный список

Старый 03.08.2009, 13:42
r_r_f_r вне форума Посмотреть профиль Отправить личное сообщение для r_r_f_r Найти все сообщения от r_r_f_r
  № 4  
Ответить с цитированием
r_r_f_r

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
что-то не понимаю зачем нужен размер пула?// извиняюсь если что

Element:
Код AS3:
 
public static var pool:Element;
public var next:Element;
public var prev:Element;
Container:
Код AS3:
public function addElement(value:Element):Element
{
	Element.pool.prev = value;
	value.next = Element.pool;
	value.prev = null;
	Element.pool = value;
	return element;
}
 
public function removeElement(value:Element):void
{
	if (value == Element.pool)
	{
		Element.pool = Element.pool.next;
	}
	else
	{
		value.prev.next = value.next;
		value.next.prev = value.prev;
	}
	value.next = null;
	value.prev = null;
}
 
public function doSmt():void
{
	var element:Element = Element.pool;
	while (element)
	{
//		element.doSmt();
		element = element.next;
	}
}
Всё же нужно вчитываться лучше, ступил, сорри.
Но всё таки я не понимаю, зачем в списке нужен размер?
Ты же не выделяешь пямять под него.


Последний раз редактировалось r_r_f_r; 03.08.2009 в 13:52. Причина: Протупил:)
Старый 03.08.2009, 13:51
Герыч вне форума Посмотреть профиль Отправить личное сообщение для Герыч Найти все сообщения от Герыч
  № 5  
Ответить с цитированием
Герыч
 
Аватар для Герыч

блогер
Регистрация: Apr 2009
Адрес: НиНо
Сообщений: 185
Записей в блоге: 12
Ты путаешь пул со связным списком.
Сам пул я организовал как связный список(это не так важно, это чисто реализация), но его сначала надо инициализировать некоторым числом элементов. Поскольку у меня почти гарантированно происходит ситуация, когда у каждой частицы желе будет достигнуто максимальное число связей, то пул мне лучше сразу инициализировать нужным числом объектов - связей.

Старый 03.08.2009, 14:03
r_r_f_r вне форума Посмотреть профиль Отправить личное сообщение для r_r_f_r Найти все сообщения от r_r_f_r
  № 6  
Ответить с цитированием
r_r_f_r

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
Ну хозяин как говорится - барин.
Но формула у вас неверна, при к=5 и n=3, а на другую мозгов не хватает.

Я бы сделал инициализацию по требованию.
Код AS3:
curentEelement = Element.pool ? Element.pool : Element.pool = new Element();

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

блогер
Регистрация: Apr 2009
Адрес: НиНо
Сообщений: 185
Записей в блоге: 12
Сейчас именно такая инициализация)
Просто
Цитата:
Сообщение от Герыч Посмотреть сообщение
...у меня почти гарантированно происходит ситуация, когда у каждой частицы желе будет достигнуто максимальное число связей, то пул мне лучше сразу инициализировать нужным числом объектов - связей.
а, я забыл про k и n сказать) k<<n, т.е. к примеру n=200, k=20

Старый 03.08.2009, 14:18
r_r_f_r вне форума Посмотреть профиль Отправить личное сообщение для r_r_f_r Найти все сообщения от r_r_f_r
  № 8  
Ответить с цитированием
r_r_f_r

Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
Тут тем более, я не знаю математического способа как можно описать "много меньше"

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

блогер
Регистрация: Apr 2009
Адрес: НиНо
Сообщений: 185
Записей в блоге: 12
Так, зря я всех тут тревожил. Я просто немного ошибся. Формула отлично работает)
P.S. На будущее: перепроверять код, написанный в час ночи=)

Старый 03.08.2009, 15:00
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 10  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Количество ребер, по идее, будет зависеть от того, как мы соединим вершины. Поэтому точную формулу, скорее всего, вывести нельзя. Есть формула для полного графа, где все вершины соединены: n * (n - 1) / 2. Т.е. как твоя формула, только без округления, так как оно тут не нужно. В правильной формуле округление бы не понадобилось.
К примеру: У графа с четырьмя вершинами и максимальным количеством ребер 2, может быть 4 ребра, а может быть и три.

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

Теги
графы

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

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


 


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


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