Форум программистов, компьютерный форум, киберфорум
Java
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.70/53: Рейтинг темы: голосов - 53, средняя оценка - 4.70
0 / 0 / 0
Регистрация: 06.02.2014
Сообщений: 45

Генератор неповторяющихся случайных чисел

08.02.2014, 21:17. Показов 10082. Ответов 12
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть коллекция стринг, 30 элементов. Нужно чтоб они не повторялись, но выводились все.
Как это реализовать? Через обычный массив, рандомное заполнение и кучу проверок? Может у кого решение есть? Или посоветуйте что-то.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
08.02.2014, 21:17
Ответы с готовыми решениями:

Нужен генератор случайных чисел для мобильного
Нужно приложение для мобильника (не Android) , которое принимает целое положительное число N, показывает случайное число от 1 до N и...

Генератор случайных чисел
Здравстуйте! А меня такая задачка. Нужно сгенерировать случайные числа с распределением Гаусса с заданными параметрами: матем.ожидание...

Callable генератор случайных чисел
Не компилируется код, хотя взят из статьи. Хотелось бы понять причину. Код: import java.util.Random; import...

12
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
 Аватар для tankomaz
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
08.02.2014, 21:25
засовывайте их в HashSet

Добавлено через 4 минуты
Java
1
2
3
4
5
6
7
8
        List<String> list = new ArrayList<>();
        list.add("1");
        list.add("1");
        list.add("2");
        list.add("3");
        
        Set<String> set = new HashSet<>(list);
        System.out.println(set);
если последовательность строк не играет значения
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
08.02.2014, 21:52
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
 
/**
 * @author mutagen
 */
public class Shuffle {
 
    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        List<String> list = Arrays.asList(new String[]{"1", "2", "3", "4", "5"});
        
        Collections.shuffle(list);
        
        System.out.println(list);
    }
 
}
0
0 / 0 / 0
Регистрация: 06.02.2014
Сообщений: 45
08.02.2014, 22:13  [ТС]
Я по одному вопросу вывожу, через геттер.
0
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
 Аватар для tankomaz
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
09.02.2014, 02:36
ну так вот и вызывайте .next() это вернет строку, вы её выведете, сразу же можете вызывать .remove(); иль мы чего не понимаем?

Добавлено через 9 минут
аааа, вам нужно с коллекции вызывать строки в "нестандартном варианте"?

Java
1
2
3
4
5
6
        Integer[] array = {1, 2, 3, 4, 5};
        ArrayList<Integer> list = new ArrayList<>(Arrays.asList(array));
        Collections.shuffle(list);
        array = list.toArray(new Integer[list.size()]);
 
        System.out.println(Arrays.toString(array));
вывод
[4, 1, 5, 2, 3]
причем всегда разный будет при генерации

Добавлено через 41 секунду
тойсь с array[i++] можно дергать (в for имеется ввиду)
0
0 / 0 / 0
Регистрация: 06.02.2014
Сообщений: 45
09.02.2014, 14:01  [ТС]
После Collections точку подчеркивает, Syntax error on token(s), misplaced construct(s).
Почему?
0
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
 Аватар для tankomaz
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
09.02.2014, 15:12
Collections.shuffle(list);
тут?
0
0 / 0 / 0
Регистрация: 06.02.2014
Сообщений: 45
09.02.2014, 15:36  [ТС]
Да, точку и list подчеркивает.

Добавлено через 6 минут
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class String_Question {
    List<String> titles = new ArrayList<String>() {
        {
            add("парпр");
            add("парпр");
            add("парпр");
            add("парпр");
            add("парпр");
             }
    };
    
    
    
    public String getTitle(int i) {
        return titles.get(i);
    }
}
    };
Java
1
2
3
4
5
6
7
8
 
  private void uobateQuestion(){
          String_Question SQ = new String_Question();
          
          labelTask.setText(SQ.getTitle(i));
          i++;
      }
    }
Вот такой вид у меня. Помоги доработать рандом.
0
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
 Аватар для tankomaz
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
09.02.2014, 15:56
а вы не за пределами метода .shuffle вызываете ?
0
0 / 0 / 0
Регистрация: 06.02.2014
Сообщений: 45
09.02.2014, 16:01  [ТС]
В классе String_Question вызываю.
0
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
 Аватар для tankomaz
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
09.02.2014, 16:38
Лучший ответ Сообщение было отмечено CKB03H0u как решение

Решение

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package pack;
 
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
 
/**
 * Created by miff on 09.02.14.
 */
public class Cyber {
    public static void main(String...args) {
        String_Question sq1 = new String_Question();
        for (int i = 0; i < 100; i++) {
            System.out.println(sq1.getTitle());
        }
 
        System.out.println("OBJECT # 2");
 
        String_Question sq2 = new String_Question();
        for (int i = 0; i < 100; i++) {
            System.out.println(sq2.getTitle());
        }
    }
 
}
 
class String_Question {
    int i = 0;
    List<String> titles = new ArrayList<String>() {
        {
            add("парпр1");
            add("парпр2");
            add("парпр3");
            add("парпр4");
            add("парпр5");
        }
    };
 
    {
        Collections.shuffle(titles);
    }
 
 
 
    public String getTitle() {
 
        if (i == titles.size() - 1) {
            i = 0;
        } else {
            i++;
        }
 
        return titles.get(i);
    }
}
Добавлено через 3 минуты
вообщем объект класса String_Question всегда хранит список нужных вам строк, в данном случае "парпр1..2...3"...
при создании объекта данная последовательность "перемешивается", тойсь становится "не по порядку" каждый раз при создании объекта. При обращении к запросу строки они возвращаются по 1..2..3 индексам (но сами строки уже в разнобой), одно что немного гарантировано, что если у вас 30 строк, а вы вызовете метод 35 раз - то выхода за границы массива не будет, элементы в порядке очереди вызовутся по индексам примерно
28...29...30....1....2..3... вообщем очередь (индексы на -1 меньше не забывайте, это я наглядно показываю), тойсь не контролируйте индекс непосредственно в том месте - где вызываете, сгрузите это на сам класс, надеюсь помог и понятно выразился
1
0 / 0 / 0
Регистрация: 06.02.2014
Сообщений: 45
09.02.2014, 16:52  [ТС]
Очень помогли. Благодарю Вас! Извините что потратил Ваше время. Удачи.
0
ɐwʎ ɔ vǝmоɔ dиw ɐʚонɔ
 Аватар для tankomaz
443 / 442 / 100
Регистрация: 14.10.2012
Сообщений: 1,146
Записей в блоге: 9
09.02.2014, 16:54
обращайтесь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.02.2014, 16:54
Помогаю со студенческими работами здесь

Генератор случайных чисел (CRC-8)
Код Генератора : G(x)=X^8+X^7+X^6+X^4+X^2+1 (CRC-8) а) Написать программу для шифрования текста, помещенного в файл...

Генератор случайных чисел Random
Хочу написать код ,который будет генерировать числа! Работаю в Eclipse . Может фича , может баг , может я криворукий , но этот код не...

Генератор случайных 4-х значных чисел
Прошу помощи в составлении кода, думаю суть ясна: нужен генератор случайных 4х значных чисел. Спасибо.

Выбор случайных неповторяющихся элементов из массива
Есть массив из 100 элементов. Нужно случайным образом выбрать из этого массива 6 элементов и поместить их в другой массив. При этом...

Генератор случайных символов
Как в NetBeanse сделать генератор символов, представленных в виде двоичного кода. Причем генерировать код должен не больше и не меньше...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Новые блоги и статьи
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru