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

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

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

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

Элементов массива может 30, уникальных строковых значений в них - 20. Нужно для каждой уникальной строки сделать уникальное число, итого 20 уникальных цифр
9 PR
 
31.05.18
10:20
Мдааа
10 VladZ
 
31.05.18
10:21
(8) Загрузи массив в ТЗ. Сверни. Возьми номер строки.
11 Ненавижу 1С
 
гуру
31.05.18
10:24
кури например Hashcode
12 Stim
 
31.05.18
10:24
(10) а есть что-нить поинтереснее? Чтобы зависело только от строки.
Что-то типа сложить все коды символов в строке в одно число или как-то рассчитать сумму хеша
13 МихаилМ
 
31.05.18
10:25
если в один проход хэш строки в число.
14 VladZ
 
31.05.18
10:26
(12) Нафига такие сложности?
15 Stim
 
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
нет . проще соответствие
19 1Сергей
 
31.05.18
10:58
Не надо усложнять. Соответствия достаточно. И следующему прогу будет проще
20 Ненавижу 1С
 
гуру
31.05.18
11:05
Функция ХешКод(Строка)
    
    Результат = 0;

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

КонецФункции
21 Сияющий Асинхраль
 
31.05.18
11:22
(14) +100500 :-)
Программист всегда исправляет последнюю ошибку.