Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 08.04.2014, 22:51   #11
eval
Подтвердите свой е-майл
 
Регистрация: 29.08.2012
Сообщений: 4,022
По умолчанию

это у вас в голове невообразимое, вот Arigato вам предлагает этот космос за капейку купить, ку?
думать надо а не в калькулятор тыкать, тогда все проще окажется
eval вне форума Ответить с цитированием
Старый 08.04.2014, 23:15   #12
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 16,219
По умолчанию

Цитата:
Сообщение от Illusiony Посмотреть сообщение
сколько процессор будет этот код обрабатывать( кодировать-декодировать). Ну предложите свой вариант?
Сколько вам в секунду надо кодировать/декодировать различный состояний игровой доски? Я вам предложил вариант, вы его хоть поняли?
Arigato вне форума Ответить с цитированием
Старый 09.04.2014, 18:52   #13
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Прошу прощения, понял ваш вариант.
Сейчас продумываю вариант на основе Вашего. Возможно получится ужать до 68 бит.
Illusiony вне форума Ответить с цитированием
Старый 09.04.2014, 19:03   #14
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

1) Итак если 0 то клетка не заполнена
2) Если следующая клетка не пустая то 1
если закодировать 4 клетки сразу и учитывая, то что первая клетка уже не пустая, то 4*5*5*5=500 комбинаций. 9 бит=512 комбинаций.
Таким образом для кодирования 4 клеток, если известно что 1вая из них не пустая занимает 9+1 =10 бит (+1 бит это и есть первый бит равный 1- говорящий о том что далее будет следовать биты 4х клеток)
Таким образом минимальный размер:
8 пустых клеток=8 бит
До 24 занятых клеток 24/4=6 раз максимум по 4 клетки кодировать.
6*10=60 бит
Итого=60+8=68 бит=8 байт 4 бита
так как числового целочисленного типа данных максимум 8 байт, то его нужно преобразовать, например в Char(9)
и необходим обратный алгоритм преобразования при извлечении.

Как поступить с индексами если поиск будет не по индексу а по значению вот этого 9 байтного поля ( наверно Char(9))?

Я думаю количество полей при долгой работе может достич десятков -сотен тысяч или миллионов

Последний раз редактировалось Illusiony; 09.04.2014 в 19:55.
Illusiony вне форума Ответить с цитированием
Старый 09.04.2014, 19:17   #15
Illusiony
Форумчанин
 
Регистрация: 17.02.2014
Сообщений: 881
По умолчанию

Извиняюсь здесь уже пошел материал не связанный с данным разделом,но если я размещу подобную тему в раздела для игр, например, то мне скажут не размножать темы так что продолжаю.
Итак, теперь хочу попробовать сколько займет кодирование изменения поля за 1 ход.
Почертив немного пришел к выводу что в игре за 1 ход можно сбить максимум 7 шашек
Таким образом изментся максимум 7+1+1 =9 позиций.
7 сбитых шашек,1 позиция где Ваша сбивающая шашка стояла на момент начала хода, 1 позиция где Ваша шашка стала стоять после сбития шашек в конце хода.
На поле 32 клетки.32 варианта =5 бит
С начало следует 5 бит номера клетки, которая стала пустой ( то есть там стояла в начале хода Ваша сбивающая шашка) эта клетка в итоге станет пустой, а раз мы это знаем то дополнительной информации не требуется.
Имеем занято первые 5 бит.
Следующие 5 битов позиция клетки на которой остановилась Ваша шашка после сбивания в конце хода. Предположим что Вы играете за белых, тогда эта клетка может быть либо белой шашкой либо белой дамкой. И достаточно 1 бита для этой информации
Имеем следующие 5+1=6 бит заняты
Далее все также позиция клеток сбитых Вами. Эти клетки станут заведомо пустыми. Итого 7*5=35 бит.
В сумме имеем 5+6+35=46 бит=5 байт и 6бит

Поправьте меня если я где то ошибся.

Последний раз редактировалось Illusiony; 09.04.2014 в 19:42.
Illusiony вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправление ошибки Duplicate entry '21057' for key 'PRIMARY' provalenki Фриланс 1 23.10.2013 12:34
Как задать primary index Даниил_глазко БД в Delphi 6 08.01.2012 13:17
Не могу разобратся с primary key Progsenya SQL, базы данных 3 19.02.2011 10:27
Violation of primary key constraint .Cannot insert duplicate key in object Как избавиться? SlimFIT БД в Delphi 4 28.12.2010 06:46