![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| nepster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
как вы думаете, сколько бы стоила разработка скрипта финансовой пирамиды ?
|
|||
|
||||
| baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
а задача уже поставлена? огласите весь список, пожалуйста
Добавлено через 6 минут и 57 секунд операции на основе двоичных деревьев займут строк 20. если запихнуть это в класс и добавить комментарии - может до 100-150 вырасти. а уж что бы решить всю задачу (про которую мы так ничего и не знаем) может и 1000, и 10000 придется написать. Вы определяете сколько взять с заказчика? Сначала определитесь с требованиями к скрипту. ЗЫ: Можно заделать на основе Nested Sets, там одних скриптов на sql строк 500 будет)) Добавлено через 12 минут и 3 секунды
|
|||
|
||||
| nepster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
пирамида пользователей. Подтвердить пользователя, удалить пользователя их пирамиды.
История пирамид. К примеру юзер выбыл, но он пожет посмотреть свою пирамиду и пирамиды тех кого пригласил. Тоесть можно воспроизводить пирамиды определенного юзера. Все это модуль к джумле( джумла - это не моя идея =) ). Собственно вот. Как думаете какая будет цена данной работы ? Видел классы, там сайт автора не работает, при том тут нет порядка вложенности. Сегодня почти доделал скрипт воспроизведения пирамиды (html таблице) из массива данных. Как доделаю кину на заценить =). |
|||
|
||||
| baldina |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 26 Всего: 101 |
переведи Добавлено через 2 минуты и 59 секунд
это как может быть? согласно предыдущему разговору они либо в одной пирамиде, либо тот кто пригласил уже вне пирамид, неактивен (прикопан=). если последнее, то все так же просто, т.к. ничего не удаляется, а просто помечается, т.е. историю можно восстановить |
||||
|
|||||
| Чучмек |
|
||||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Должно быть два массива: массив users и массив верхушек пирамид tops
Массив users в виде дерева: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31][32][33][34][35][36][37][38][39][40][41][42][43][44][45][46][47][48][49][50][51][52][53][54][55][56][57][58][59][60][61][62] Очевидно что уровень n - будет содержать 2^n элементов Индекс 1го элемента на уровне n ,будет (I+1)*2^n-1 где I-индекс вершины Так если вершина - элемент с индексом 10 То на 0 уровне (10+1)*1-1=10 на 1 уровне (10+1)*2-1=21 на 2 уровне (10+1)*4-1=43 Перебор элементов пирамиды
Определение пирамиды(индекс вершины) , к которой принадлежит элемент с индексом $i
По заполнении пирамиды индекс ее вершины удаляется из $tops, а индексы ее элементов с уровня 1 добавляются в конец $tops Это сообщение отредактировал(а) Чучмек - 3.8.2012, 22:05 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
||||
|
|||||
| Fortop |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Блин, а зачем? Кто мешает хранить атрибут сразу вместе с элементом? Выбрать любой произвольный элемент с его иерархией можно простой итерацией. -------------------- Мир это Я. Живее всех живых. |
||||
|
|||||
| nepster |
|
||||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
тут просто так походу перебирать и удалять не получится, так как везде должна быть история. У меня идея сейчас такая:
таблица users и pyramid pyramid
top_user - id пользователя, который на верху set - json со списком юзеров status - 1 пирамида в действии, 0 - закончена. json данные будут выглядеть примерно так
Теперь как мы делаем, если нужно показать пирамиду пользователя, который номер 1 в ней, мы достаем запись где top_user равен указанному id достаем json данные декодируем их в массив и передаем в класс, который сгенерирует нам нашу пирамидку. Единственное, что вижу проблему, как мы думаете: Если нужно показать пирамиду юзера, который скажем не 1, а где то в центре пирамиды. Тоесть его id мелькает в json данных, как скрипт справиться примерно с такой задачей: - достать все записи из таблицы Пирамида - открыть циклы, который проходится по каждой записи и достает данные json - еще 1 цикл, который проходится в данных json и ищет нужный id. На глаз примерно так: нужно найти этого юзера (id 54), он где то залез в джейсоне
Конечно это будет функция к примеру если юзер найдет она возвращает id записи, если нет то false. Как думаете, логично будет использовать такой вариант ? Это сообщение отредактировал(а) nepster - 4.8.2012, 03:22 |
||||||
|
|||||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Объем данных +50% При неиндексированном статусе замедлится поиск на несколько порядков, при индексированном - еще +50%. Mеняем tops (количество элементов = количестово пирамид) на индекс (количество элементов=количество пользователей) А какой механизм добавления нового пользователя в пирамиду? -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| nepster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
об этом я еще не думал, но на вскидку такой:
к примеру есть пирамида она заполнена вся кроме последнего юзера. Тоесть на 4 уровне заполнено 26 ячеек из 27. есть пользователь Вася, который хочет пригласить друга. Вот он приглашает друга, друг становится на 27 место. к примеру каждый раз когда мы добавляем юзера, мы проверяем сколько мест осталось.
Добавлено через 41 секунду на самом деле интересненькое такое заданице. |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Придется обновить данные всех пользователей составляющих пирамиду, перераспределить их между двумя новыми пирамидами. В моем варианте нужно лишь обновить массив вершин.
-------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| nepster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
я не понял, а как мы в вашем варианте воспроизведем пирамиду определенного юзера ?
|
|||
|
||||
| Чучмек |
|
||||||||||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Таблица users
ind - индекс в дереве Получаем индекс пользователя по user_id
Таблица tops
status, например, 1 (not_full)- не заполненная пирамида, 0(full) - заполненная пирамида Получаем пирамиду пользователя (вершину) по индексу
Получаем всех пользователей из пирамиды
Это сообщение отредактировал(а) Чучмек - 5.8.2012, 08:44 -------------------- умную мысль держи при себе, а дурной - поделись с другими |
||||||||||
|
|||||||||||
| Fortop |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2200 Регистрация: 13.11.2007 Где: Донецк Репутация: 20 Всего: 42 |
Как ты думаешь, что такое твой второй массив вершин и что в нем окажется? -------------------- Мир это Я. Живее всех живых. |
|||
|
||||
| Чучмек |
|
|||
|
НЭТ БИЛЭТ ![]() ![]() Профиль Группа: Участник Сообщений: 841 Регистрация: 11.5.2008 Где: СССР Репутация: 4 Всего: 41 |
Если из него заполненные не удалять, а помечать, то (при условии равномерного заполнения дерева) count(tops) * 2^n = count(users) , где n - число уровней в пирамиде. -------------------- умную мысль держи при себе, а дурной - поделись с другими |
|||
|
||||
| nepster |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 300 Регистрация: 26.4.2009 Репутация: нет Всего: нет |
Чучмек
Как я понял на выходе мы получим массив со всеми id пользователей для какой-то пирамиды. Тогда в любом случае нам нужно собрать ее в массив, что бы передать классу, который соберет массив в таблицу и оформит дизайн. + мы можем не восстановить нужный порядок пользователей в пирамиде, и на каком уровне пользователь. |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |