![]() |
|
![]() ![]() ![]() |
|
scuter |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 13.6.2008 Репутация: нет Всего: 1 |
недавно нашёл другой алгоритм перебора чисел,
вот сам алгоритм есть первое число 0 00000000000000 второе число 1 единица ставиться в начале 00000000000001 третье число 2 единичка перемещается вперёд 00000000000010 и так дальше пока не переместится до конца это будет уже 14 в данном числе 10000000000000 когда единичка добралась до конца идёт новый ряд чисел но уже с двумя единичками это уже число 15 00000000000011 следующее число работает по алгоритму двигается самая последняя единичка вперёд если на пути она встречает перед собой другую единицу то она выбивает вперёд впереди стоящую единицу, а сома отбрасывается назад 00000000000101 - 16 00000000000110 - 17 00000000001001 - 18 00000000001010 - 19 у меня вопрос встречали ли вы такой алгоритм перебора чисел или нет, меня интересует преобразование обычного бинарного числа в такой вид чисел честно говоря мне нужен какой ни будь преобразователь числа который даёт максимально уникальное значение. |
|||
|
||||
baldina |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3433 Регистрация: 5.12.2007 Где: Москва Репутация: 4 Всего: 101 |
что еще за преобразователь? чем само число не уникально? какое отношение имеют способы перебора (которых чуть более чем два)? |
|||
|
||||
scuter |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 13.6.2008 Репутация: нет Всего: 1 |
мне нужно преобразовать число так что бы при изменении на единицу число менялось бы до неузнаваемости,
при этом эти числа не должны повторяться. то есть первое число 00000000000001 следующее за ним 00011100100001 ну что ни будь вроде этого только преобразовывать нужно и в обратную сторону тоже. тот алгоритм похож на последовательность Вибаначе, только он другой и преобразование там другие. Это сообщение отредактировал(а) scuter - 26.6.2015, 01:17 |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 7 Всего: 386 |
scuter, Переводи число в банальный двоичный код. А чтобы оно "менялось бы до неузнаваемости" - переставляй получившиеся цифирки по какому-нибудь фиксированному правилу. При декодировании - переставляй обратно и из двоичного...
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Любая приличная хэш-функция. А с учётом требования уникальности - битовая длина хэша должна быть не менее битовой длины числа. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
scuter |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 80 Регистрация: 13.6.2008 Репутация: нет Всего: 1 |
вот это мне и нужно, но обычный хеш меняет размер т.е. на выходе получается что то с большим или меньшем количеством знаков. Это сообщение отредактировал(а) scuter - 27.6.2015, 02:54 |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 7 Всего: 386 |
scuter, большее или меньшее количество знаков - это вообще говоря, сколько нулей в начало нужно дописать, чтобы количество знаков сравнялось
![]() Нужно получить именно значение из 0 и 1? В обратную сторону тоже нужно будет , из числа получать его порядковый номер? Вот еще мысль. Придумываешь секретное-секретное число. Инициализируешь им генератор случайных чисел. Первый вызов генератора даст нам значение 0, второй - значение 1 и так далее... После перевода в двоичный код, конечно. Расшифровать можно, вообще говоря, только на той машине, на которой шифровал. (хм... вряд ли это утверждение в точности верно... ![]() -------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
TarasProger |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 104 Регистрация: 5.8.2015 Репутация: нет Всего: нет |
Добавлено @ 11:14 Кстати, 10000000000000 двоичное - это 8192 десятичное, а вовсе не 14. Двоичная система счисления определена однозначно и от алгоритмов перебора не зависит. Это сообщение отредактировал(а) TarasProger - 17.8.2015, 11:15 |
|||
|
||||
TarasProger |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 104 Регистрация: 5.8.2015 Репутация: нет Всего: нет |
||||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Ноль? Один? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
TarasProger |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 104 Регистрация: 5.8.2015 Репутация: нет Всего: нет |
||||
|
||||
Akina |
|
|||
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 20 Всего: 454 |
Эмм... следует понимать этот ответ как утверждение, что в десятичной (или в двоичной?) системе счисления не существует ни нуля, ни единицы?
И вдогонку. На самом деле все Ваши утверждения имеют смысл лишь в случае, когда речь идёт о чистых системах счисления, не привязанных к компьютерному представлению чисел. В то время как исходный вопрос однозначно оперирует не числами, а их представлениями. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Алгоритмы" | |
|
Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Алгоритмы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |