Вход | Регистрация



Числовой идентификатор строки

Числовой идентификатор строки
Я
   Stim
 
31.05.18 - 10:13
Есть некий массив строковых значений. В массиве могут быть одинаковые значения.
Нужно каждому из них противопоставить какое-то уникальное числовое значение. Что-то типа:

"Вася Пупкин" - 5
"Федя Пупкин" - 12
"Вася Пупкин" - 5
"Маша Иванова" - 22

Главное - чтобы для каждого строкового значения генерируемое число было уникально и не повторялось. Длина числа = 5. Различных значений в массиве не больше 20.

Какую формулу можно придумать для генерации уникальных чисел?
 
 
   unregistered
 
1 - 31.05.18 - 10:16
Не понял.
У вас два значения "Вася Пупкин" с одинаковым(!) числовым значением "5". А в задаче указано "каждому из них противопоставить какое-то уникальное(!) числовое значение".
Чем определяется уникальность числового значения?
   kubik_live
 
2 - 31.05.18 - 10:17
Индекс элемента массива?
   Darych
 
3 - 31.05.18 - 10:18
инкремент не пойдет, не?
   DrShad
 
4 - 31.05.18 - 10:18
Соответствие и заполнять его обходом массива
   DrShad
 
5 - 31.05.18 - 10:19
(3) здарова бродяга
   VladZ
 
6 - 31.05.18 - 10:19
(0) Загрузи свой массив в ТЗ. Возьми номер строки.
   DrShad
 
7 - 31.05.18 - 10:20
сколько народу попалилось на простом вопросе ....
   Stim
 
8 - 31.05.18 - 10:20
(1) в задаче указано не каждому элементу массива противопоставить уникальное число, а каждому строковому значению из массива.

Элементов массива может 30, уникальных строковых значений в них - 20. Нужно для каждой уникальной строки сделать уникальное число, итого 20 уникальных цифр
   PR
 
9 - 31.05.18 - 10:20
Мдааа
   VladZ
 
10 - 31.05.18 - 10:21
(8) Загрузи массив в ТЗ. Сверни. Возьми номер строки.
 
 Рекламное место пустует
   Ненавижу 1С
 
11 - 31.05.18 - 10:24
кури например Hashcode
   Stim
 
12 - 31.05.18 - 10:24
(10) а есть что-нить поинтереснее? Чтобы зависело только от строки.
Что-то типа сложить все коды символов в строке в одно число или как-то рассчитать сумму хеша
   МихаилМ
 
13 - 31.05.18 - 10:25
если в один проход хэш строки в число.
   VladZ
 
14 - 31.05.18 - 10:26
(12) Нафига такие сложности?
   Stim
 
15 - 31.05.18 - 10:27
Кто сможет придумать самый короткий вариант? Чтобы в одну строку

стр.ЧисловойИдентификатор = типоваяФункция(стр.МояСтрока);
   Малыш Джон
 
16 - 31.05.18 - 10:27
(13) а типа хэш - это гораздо проще, чем вытащить значения в ТЗ, свернуть, в один проход пронумеровать, а потом в один проход проставить соответствия в исходном массиве?
   МихаилМ
 
17 - 31.05.18 - 10:28
(16) проще
   МихаилМ
 
18 - 31.05.18 - 10:31
нет . проще соответствие
   1Сергей
 
19 - 31.05.18 - 10:58
Не надо усложнять. Соответствия достаточно. И следующему прогу будет проще
   Ненавижу 1С
 
20 - 31.05.18 - 11:05
Функция ХешКод(Строка)
    
    Результат = 0;

    Для й=1 по СтрДлина(Строка)  Цикл
    
        Результат = Результат+КодСимвола(Строка,й)*й;
    
    КонецЦикла; 
    
    Возврат Результат%65536; 

КонецФункции
   Сияющий Асинхраль
 
21 - 31.05.18 - 11:22
(14) +100500 :-)


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует