![]() |
По графам
Пишу сюда, потому что по общим вопросам программирования ветки нет:mad:
Итак, есть n вершин, у каждой может быть максимум k рёбер. Как посчитать, сколько у всего графа будет максимально рёбер? Это мне нужно, чтобы оптимально просчитать размер пула для динамического создания связей в желе. Добавлено через 5 минут Пока получается наверно такая формула: round(n*k/2) |
Используй списки, с ними флеш отлично дружит, только перед помещением в пул обязательно линки на частицы желе затереть нужно.
|
=) я сразу так сделал. Вопрос не в этом, вопрос в оптимальном размере для пула. Для каждой частицы я разрешаю максимум k связей, поэтому узнав эту формулу я узнаю оптимальный размер для пула. Вот как)
P.S. пул - это у меня связный список |
что-то не понимаю зачем нужен размер пула?// извиняюсь если что:)
Element: Код AS3:
Код AS3:
Но всё таки я не понимаю, зачем в списке нужен размер? Ты же не выделяешь пямять под него. |
Ты путаешь пул со связным списком.
Сам пул я организовал как связный список(это не так важно, это чисто реализация), но его сначала надо инициализировать некоторым числом элементов. Поскольку у меня почти гарантированно происходит ситуация, когда у каждой частицы желе будет достигнуто максимальное число связей, то пул мне лучше сразу инициализировать нужным числом объектов - связей. |
Ну хозяин как говорится - барин.
Но формула у вас неверна, при к=5 и n=3, а на другую мозгов не хватает. Я бы сделал инициализацию по требованию. Код AS3:
|
Сейчас именно такая инициализация)
Просто Цитата:
|
Тут тем более, я не знаю математического способа как можно описать "много меньше":)
|
Так, зря я всех тут тревожил. Я просто немного ошибся. Формула отлично работает)
P.S. На будущее: перепроверять код, написанный в час ночи=) |
Количество ребер, по идее, будет зависеть от того, как мы соединим вершины. Поэтому точную формулу, скорее всего, вывести нельзя. Есть формула для полного графа, где все вершины соединены: n * (n - 1) / 2. Т.е. как твоя формула, только без округления, так как оно тут не нужно. В правильной формуле округление бы не понадобилось.
К примеру: У графа с четырьмя вершинами и максимальным количеством ребер 2, может быть 4 ребра, а может быть и три. |
Цитата:
|
Да, максимумы. Я просто объясняю форумулу:
каждой вершине присвоим число k, а потом будет брать любые 2 вершины и уменьшать число, приписанное вершине на 1, а число рёбер увеличивать на 1. Как не думай, больше чем k*n/2 раз не получится. |
| Часовой пояс GMT +4, время: 03:06. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.