Форум программистов, компьютерный форум, киберфорум
Java SE (J2SE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
 Аватар для Slavik1985
0 / 0 / 1
Регистрация: 08.12.2015
Сообщений: 58

Массив с рандом на 4значения

09.01.2016, 21:52. Показов 1247. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
надо понять почему не идет проверка на строгое возростание
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
public void massIncrease() {
        int f[] = new int[4];
        int v0 = 99;
        int v1 = 99;
        int v2 = 99;
        int v3 = 9;
        String inc;
        for (int i = 0; i < f.length; i++) {
            f[i] = (int) (random() * (100 - 9) + 9);
            if (v0 > f[i]) {
                v0 = f[i];
            } else if (v1 > f[i] & v1 > v0) {
                v1 = f[i];
            } else if (v2 > f[i] & v2 > v1) {
                v2 = f[i];
            } else if (v3 < f[i] & v3 > v2) {
                v3 = f[i];
            }
            int[] compare = { v0, v1, v2, v3 };
            if (f.equals(compare)) {
                inc = new String("increase type");
            } else {
                inc = new String("usual type");
            }
            System.out.print(f[i] + " ");
            System.out.println(inc);
        }
    }
Миниатюры
Массив с рандом на 4значения  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.01.2016, 21:52
Ответы с готовыми решениями:

STL: Создать массив длины N. Заполнить массив рандом. Найти все различные числа массива
Создать массив длины N (число N вводится с клавиатуры). Заполнить массив случайными целыми числам. Найти все различные числа массива. Для...

Массив: Как сделать массив и рандом глобальными?
Мне пришлось в каждом таймере создать массив, рандом и &quot;отжать&quot; все перечисленные в массиве клавиши (не знаю, из-за этого ли, но код...

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

13
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
09.01.2016, 22:22
Slavik1985, я чего-то не догнал: а чего должно получиться-то? Чего ожидать от данного кода? Должен получиться массив с возрастающими значениями? Или что?
0
 Аватар для Slavik1985
0 / 0 / 1
Регистрация: 08.12.2015
Сообщений: 58
09.01.2016, 22:32  [ТС]
Цитата Сообщение от HOBATOP Посмотреть сообщение
Slavik1985, я чего-то не догнал: а чего должно получиться-то? Чего ожидать от данного кода? Должен получиться массив с возрастающими значениями? Или что?
нет, надо устроить проверку массиву если он получится строго возрастающим то вывести сообщение об этом

походу исправил немного лучше стало когда:
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
public void massIncrease() {
        int f[] = new int[4];
        int v0 = 100;
        int v1 = v0;
        int v2 = v1;
        int v3 = v2;
        String inc;
        for (int i = 0; i < f.length; i++) {
            f[i] = (int) (random() * (100 - 9) + 9);
            if (v0 > f[i]) {
                v0 = f[i];
            } else if (v1 > v0&&v1 > f[i]) {
                v1 = f[i];
            } else if (v2 > v1&&v2 > f[i]) {
                v2 = f[i];
            } else if (v3 > v2&&v3 > f[i]) {
                v3 = f[i];
            }
            int[] compare = { v0, v1, v2, v3 };
            if (/*f.equals(compare)*/Arrays.equals(f, compare)) {
                inc = new String("increase type");
            } else {
                inc = new String("usual type");
            }
            System.out.print(compare[i]+"- ");
            System.out.println();
            System.out.println(inc);
        }
        System.out.print(Arrays.toString(f));
    }
0
 Аватар для Slavik1985
0 / 0 / 1
Регистрация: 08.12.2015
Сообщений: 58
09.01.2016, 22:42  [ТС]
уже чтото но надо как то забрать строки usual не знаю пока как
Миниатюры
Массив с рандом на 4значения  
0
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
09.01.2016, 22:44
Slavik1985, стесняюсь спросить: сначала сгенерировать рандом, а потом отсортировать по какой причине нельзя? Там можно даже не выводить сообщения - будет строго возрастающий.
0
 Аватар для Slavik1985
0 / 0 / 1
Регистрация: 08.12.2015
Сообщений: 58
09.01.2016, 23:30  [ТС]
Цитата Сообщение от HOBATOP Посмотреть сообщение
Slavik1985, стесняюсь спросить: сначала сгенерировать рандом, а потом отсортировать по какой причине нельзя? Там можно даже не выводить сообщения - будет строго возрастающий.
это фишка задания какраз таки в том чтобы программа смогла увидеть возрастающий он или нет...
не сомневаюсь что есть куда более красивше и оптимальнее коды решения чем мой, я пока что даже не стажер)только учусь не знаю выйдет ли чтолибо с того
0
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
10.01.2016, 19:46
Лучший ответ Сообщение было отмечено Slavik1985 как решение

Решение

Slavik1985,
Цитата Сообщение от Slavik1985 Посмотреть сообщение
фишка задания какраз таки в том чтобы программа смогла увидеть возрастающий он или нет
Вот ежели я правильно понял: массив может быть любой и нужно определить возрастающий ли (упорядоченно возрастающий) или нет? Ok! Вариант решения (даже с комментариями, хотя и недолюбливаю я их писать):
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    public static void massIncrease() {
        int[] f = new int[4];
        int[] v = new int[f.length];
        //создадим два идентчиных массива
        for (int i = 0; i < f.length; i++) {
            f[i] = (int) (Math.random() * 91 + 9);
            v[i] = f[i];
        }
        //один из них отстртируем по возрастанию
        Arrays.sort(v);
        //сравним отсортированный и исходный массивы. Результат выводим на консоль
        if (Arrays.equals(f, v)) {
            System.out.println("Массив " + Arrays.toString(f) + " возрастающий");
        } else {
            System.out.println("Массив " + Arrays.toString(f) + " невозрастающий");
 
        }
    }

И для всей этой мешанины создадим запускающий метод:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
    public static void main(String[] args) {
        for (int i = 0; i < 10; i++) {
            massIncrease();
        }
    }

По результатам первых десяти запусков сложилась вот такая картина:
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
Массив [95, 58, 81, 89] невозрастающий
Массив [32, 50, 32, 42] невозрастающий
Массив [53, 67, 70, 91] возрастающий
Массив [57, 80, 71, 63] невозрастающий
Массив [31, 41, 75, 96] возрастающий
Массив [81, 75, 93, 50] невозрастающий
Массив [93, 66, 34, 43] невозрастающий
Массив [83, 66, 42, 96] невозрастающий
Массив [36, 20, 95, 97] невозрастающий
Массив [76, 55, 9, 99] невозрастающий

Если задача была только в том, чтобы определить вид массива - то задача решена. Если ещё какие-то требования, то они не были озвучены и в решении не учитывались.
1
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
11.01.2016, 13:31
Лучший ответ Сообщение было отмечено Slavik1985 как решение

Решение

HOBATOP, ты серьёзно предлагаешь проверять упорядочивание массива созданием его копии?
Java
1
2
3
4
5
6
7
8
boolean isSortedUp(int[] array) {
    for (int i = 0; i < array.length - 1; i++) {
        if (array[i] > array[i + 1]) {
            return false;
        }
    }
    return true;
}
1
 Аватар для HOBATOP
323 / 310 / 206
Регистрация: 14.09.2015
Сообщений: 827
11.01.2016, 14:49
aleksandy,
Цитата Сообщение от Slavik1985 Посмотреть сообщение
это фишка задания какраз таки в том чтобы программа смогла увидеть возрастающий он или нет...
- человек борется с задачей буквально не щадя живота своего. Почему-то ему нужно именно вот так, а не эдак. И видно что человек учится. И я учусь. Да, логичнее было бы проверить до первого несовпадения, как Вы и предлагаете - если следующее число меньше предыдущего, то дальше можно и не проверять - но почему-то актуально подёргать именно равенство (или неравенство) массивов. У новичков всегда масса косяков, а мы новички. Уверяю Вас, что если бы вы оказались у меня на работе, то большинство ваших действий выглядели бы неловкими и корявыми. Но Вы новичок, и ожидать, что человек сможет за день-два-месяц освоить хотя бы треть из имеющихся в наличии инструментальных средств, по меньшей мере наивно.
Так что "дорогу осилит идущий" - будем дёргать Jav'у за всё, что у неё торчит (к слову очень многие спотыкаются на том, что пытаются массивы сравнивать через "==" - даже в течение последней недели несколько раз возникали подобные недоразумения) и научимся.
0
2884 / 2296 / 769
Регистрация: 12.05.2014
Сообщений: 7,978
11.01.2016, 15:14
оправдывать весь свой корявый код и подход тем, что я новичек, удобная тактика, не правда ли?
0
11.01.2016, 15:54

Не по теме:

Паблито, нет, это не тактика. Да и не оправдание. Констатация факта: человек мучается, что-то пытается сделать. Корифеи горделиво, как и положено небожителям, на это взирают. Кто-то пытается - ну уж как умеет, и в силу понимания, чего человеку нужно - помочь... Коряво? (Раз уж к слову пришлось я так и назвал

Цитата Сообщение от HOBATOP Посмотреть сообщение
для всей этой мешанины
сие творчество). Наверняка, но другого, сначала вообще ни кто и ни чего не предложил. Так что вот так как-то. Нету тут ни какой тактики. И защиты "это моя кучка Г... и не смейте её оскорблять" тоже нет. Просто попытка сдвинуть паренька в другую сторону, а то чего-то он на этих if - else вообще зациклился... Вот как-то так, уважаемый Паблито. ;)

0
 Аватар для Slavik1985
0 / 0 / 1
Регистрация: 08.12.2015
Сообщений: 58
12.01.2016, 15:38  [ТС]
Цитата Сообщение от aleksandy Посмотреть сообщение
HOBATOP, ты серьёзно предлагаешь проверять упорядочивание массива созданием его копии?
Java
1
2
3
4
5
6
7
8
boolean isSortedUp(int[] array) {
    for (int i = 0; i < array.length - 1; i++) {
        if (array[i] > array[i + 1]) {
            return false;
        }
    }
    return true;
}
кстати if true тогда ошыбка код не совсем рабочий но как вариант мне нравится boolean

походу это через array[i + 1] - недопустимый номер индекса
0
636 / 528 / 165
Регистрация: 01.04.2010
Сообщений: 1,843
12.01.2016, 23:22
Цитата Сообщение от Slavik1985 Посмотреть сообщение
походу это через array[i + 1] - недопустимый номер индекса
Чего бы это был недопустимый индекс?

Для тех, кто в танке: i < array.length - 1;
0
 Аватар для Slavik1985
0 / 0 / 1
Регистрация: 08.12.2015
Сообщений: 58
12.01.2016, 23:52  [ТС]
Цитата Сообщение от aleksandy Посмотреть сообщение
Чего бы это был недопустимый индекс?

Для тех, кто в танке: i < array.length - 1;
для тех кто точно в танке если в i заходит последний индекс-номер а у нас (і+1) что происходит?

Добавлено через 3 минуты
наверное что-то вроде этого

[13, 32, 41, 79]
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException : 4
at home9a.Loop.MassIncrease3(Loop.java:500)
at home9a.Loops.main(Loops.java:25)

Добавлено через 16 минут
Цитата Сообщение от Slavik1985 Посмотреть сообщение
i < array.length - 1
походу не заметил извиняюсь
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.01.2016, 23:52
Помогаю со студенческими работами здесь

Рандом в пайтон (аппаратный рандом для генерации паролей)
суть такова есть такой скрипт на питоне wavBuf = dwParam1.contents if wavBuf.dwBytesRecorded &gt; 0 : bits =...

Массив и рандом
2. Дан одномерный массив, состоящий из N целочисленных элементов. 2.1. Заполнить массив случайными числами. 2.2. Найти минимальный...

массив и рандом
как правельно вбить в массив , чтобы данные из mysql я выводил в рандомном порядке?

Рандом + Массив
Как сделать рандом массива? Допусти я создам два массива из 5 элементов: string Mlogin= new string; Mlogin = &quot;Login...

Специальный рандом массив
Здравствуйте! У меня есть проблема задание по с++. В принципе, я его хотел зделать сам, но боюсь, мне это не под силу, прошу о помощи....


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

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru