|
Генератор Случайных Чисел |
☑ |
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
Точно так и хотель спс !
|
|