|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
08.04.2014, 22:51 | #11 |
Подтвердите свой е-майл
Регистрация: 29.08.2012
Сообщений: 4,011
|
это у вас в голове невообразимое, вот Arigato вам предлагает этот космос за капейку купить, ку?
думать надо а не в калькулятор тыкать, тогда все проще окажется |
08.04.2014, 23:15 | #12 |
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,596
|
Сколько вам в секунду надо кодировать/декодировать различный состояний игровой доски? Я вам предложил вариант, вы его хоть поняли?
E-Mail: arigato.freelance@gmail.com
|
09.04.2014, 18:52 | #13 |
Форумчанин
Регистрация: 17.02.2014
Сообщений: 881
|
Прошу прощения, понял ваш вариант.
Сейчас продумываю вариант на основе Вашего. Возможно получится ужать до 68 бит. |
09.04.2014, 19:03 | #14 |
Форумчанин
Регистрация: 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. |
09.04.2014, 19:17 | #15 |
Форумчанин
Регистрация: 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. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Исправление ошибки 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 |