Имя: Пароль:
1C
 
Генератор Случайных Чисел
0 Gateways
 
10.05.18
14:06
Привет всем ! Как выбрать только уникальные значении через  ГенераторСлучайныхЧисел?

код:
СЗ= Новый СписокЗначений;        
нум = 0;
пока нум < 9 цикл
рандом  = Новый ГенераторСлучайныхЧисел;
данные = рандом.СлучайноеЧисло(0,8);
СЗ.Добавить(данные);
нум = Нум +1;
КонецЦикла;

Так в СЗ получается на пример так  - 5; 1; 8; 4; 3; 2; 6; 3; 3
но мне нужен так -  5; 1; 8; 4; 3; 2; 6; 0; 7
п.с я не русскый если что :P
1 Волшебник
 
10.05.18
14:08
1) Закинуть в Таблицу значений и Свернуть
или
2) Закинуть в соответствие
2 1Сергей
 
10.05.18
14:10
или проверять вхождение перед добавлением
3 RomanYS
 
10.05.18
14:13
(2) ему похоже случайная перестановка нужна. Твоим способом на числах больше 20 он ее бесконечно долго получать будет
4 1Садовник
 
10.05.18
14:22
(0) Что бы "перемешать" набор чисел - можно получить для каждого числа из этого набора "случайный вес". А затем упорядочить по этому весу. Я бы так сделал
5 Вафель
 
10.05.18
14:24
те по идее тебе нужно не случайную последовательность,
а случайно перемешанную перестановку
6 sandal_r
 
10.05.18
14:29
МассивЧисел = Новый Массив;
Для инд = 0 по 8 Цикл
  МассивЧисел.Добавить(инд);
КонецЦикла;

ПеремешанныйМассив = Новый Массив;
ГСЧ = Новый ГенераторСлучайныхЧисел;
Для инд=0 по 8 Цикл
  СлучайныйИндекс = ГСЧ.СлучайноеЧисло(0,8-инд);        
  ПеремешанныйМассив.Добавить(МассивЧисел[СлучайныйИндекс]);
  МассивЧисел.Удалить(СлучайныйИндекс);
КонецЦикла;
7 Gateways
 
10.05.18
14:34
спс всем !

sandal_r
Точно так и хотель спс !
Программист всегда исправляет последнюю ошибку.