Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.68/34: Рейтинг темы: голосов - 34, средняя оценка - 4.68
Так говорил Заратустра...
 Аватар для alex120
62 / 47 / 6
Регистрация: 19.01.2012
Сообщений: 162
Записей в блоге: 6

Массив в случайном порядке

01.03.2013, 22:26. Показов 6873. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Задача:
Напишите Java-метод, который принимает массив, содержащий целые числа от 1 до 52, и смешивает их случайным образом. Метод должен с равной вероятностью выдавать различные возможные последовательности значений.
В подсказках написано
Consider using swaps to reshuffle the array one entry at a time, starting from the beginning and moving to the end.
Подскажите, как это реализовать?

Вначале думал через генератор случайных чисел, но такой вариант не подходит т.к. они повторяются.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.03.2013, 22:26
Ответы с готовыми решениями:

Показы случайном порядке слов
Здравствуйте, я не прогер а учуь и то вебу а не джама.)) Но есть необходимость для собственных нужд сделать такую вещь. есть ексель...

Замена элементов двумерного массива в случайном порядке
Добрый день. Есть ли возможность в JAVA имея двумерный массив осуществить замену случайных элементов на ноль(например 4 из 9)? ...

Программа, которая выводит буквы введенного слова в случайном порядке
Здравствуйте, может кто-нибудь подсказать как выполнить эту задачу. Суть в том, что программа считывает введенное слово (не больше 14 букв)...

6
 Аватар для AckiyBolt
653 / 402 / 35
Регистрация: 19.02.2013
Сообщений: 1,072
Записей в блоге: 2
01.03.2013, 23:52
ну если повторяются - пусть повторяются. если я правильно понял задачу то вижу что-то такое:

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
int[] shufle (int[] arr) {
   int [] result = new int [arr.lenght];
   int [] markArr = new int [arr.lenght];
   Random rand = new Random(Callendar.getInstance.getTimeInMillis());
   for (int i = 0; i<arr.lenght; i++) {
      if (arr[i] == i+1) {
         int randVal = rand.nextInt(arr.lenght - 1)
         if (result[randVal] == 0) {
            result[randVal] = arr[i];
            markArr[randVal] = 1;
         } else {
            for (int j = 0; j<markArr.lenght; j++) {
               if (markArr[j] == 0) {
                  result[j] = arr[i];
               }
            }
         }
      } else throw new IllegalArgumenException();
   }
   return result;
}
да. и извиняюсь за синтаксические ошибки и неточности. у меня слегка идешка поломалась)
1
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
02.03.2013, 00:51
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
import java.util.Arrays;
import java.util.Random;
 
public class Shuffler {
 
    public static void shuffle(int[] arr) {
        Random rnd = new Random(System.nanoTime());
        for (int i = 0; i < arr.length; i++) {
            swap(arr, i, rnd.nextInt(arr.length));
        }
    }
 
    public static void swap(int[] arr, int i, int j) {
        int tmp = arr[i];
        arr[i] = arr[j];
        arr[j] = tmp;
    }
 
    static class Test {
        public static void main(String[] args) {
            int[] a = { 1, 2, 3, 4, 5, 6, 7, 8 };
            for (int i = 0; i < a.length; i++) {
                Shuffler.shuffle(a);
                System.out.println(Arrays.toString(a));
            }
 
        }
    }
}
Bash
1
2
3
4
5
6
7
8
[7, 3, 6, 1, 4, 2, 5, 8]
[3, 4, 5, 1, 2, 6, 7, 8]
[8, 5, 6, 7, 3, 4, 2, 1]
[6, 1, 3, 5, 8, 2, 4, 7]
[2, 8, 1, 6, 5, 4, 7, 3]
[5, 6, 1, 3, 7, 8, 4, 2]
[6, 1, 2, 7, 3, 5, 8, 4]
[8, 4, 3, 5, 1, 2, 6, 7]
ни единого повтора
1
Так говорил Заратустра...
 Аватар для alex120
62 / 47 / 6
Регистрация: 19.01.2012
Сообщений: 162
Записей в блоге: 6
02.03.2013, 01:27  [ТС]
Разница между
Java
1
System.nanoTime()
и
Java
1
Callendar.getInstance.getTimeInMillis()
заключается только в том, что реализовано через различные классы?
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
02.03.2013, 01:56
вы вдумайтесь, там мили - 10-6, а там нано 10-9

и в обоих случаях это нативные методы
Java
1
2
public static native long currentTimeMillis();
public static native long nanoTime();
0
Так говорил Заратустра...
 Аватар для alex120
62 / 47 / 6
Регистрация: 19.01.2012
Сообщений: 162
Записей в блоге: 6
02.03.2013, 02:08  [ТС]
Насколько я понимаю, в данном случае не так важна степень мили или нано.
0
 Аватар для mutagen
2587 / 2260 / 257
Регистрация: 14.09.2011
Сообщений: 5,185
Записей в блоге: 18
02.03.2013, 02:18
Цитата Сообщение от alex120 Посмотреть сообщение
Насколько я понимаю, в данном случае не так важна степень мили или нано.
Если вызывать шафл в цикле то за 1 милисекунду он может выполнить эту операцию несколько раз, и каждый раз рандом будет одинаковый, а вот если посолить при помощи нано тогда гарантированно разный
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.03.2013, 02:18
Помогаю со студенческими работами здесь

Класс, который в случайном порядке выводит на экран 30 целочисленных значений
Напишите пожалуйста. Очень надо. Добавлено через 55 секунд Класс, который в случайном порядке выводит на экран 30 целочисленных...

Перемешать массив в случайном порядке
...доброго времени суток, уважаемые форумчане! Существует ли в классе Array &quot;прямой&quot; метод случайного перемешивания массива? - что-то...

Добавить массив элементов в ComboBox в случайном порядке
Заполняю словами CB из списка. Вот код: Dim dd As String() = {&quot;Саша&quot;, &quot;Саня&quot;, &quot;Александр&quot;, &quot;Таня&quot;, &quot;Петя&quot;,...

Заполнить массив 5х5 единицами и нулями в случайном порядке
заполнить массив 5х5 единицами и нулями в случайном порядке и проверить существует ли связь через единицы от верхней строки массива до...

Перемешать одномерный массив и вывести в случайном порядке без повторения
Всем привет, Есть одномерный массив неправильных вопросов, мне их нужно перемешать и выводить в listBox в случайном порядке и без...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru