Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
6 / 6 / 1
Регистрация: 12.01.2015
Сообщений: 87
1

Случайные числа

28.07.2015, 15:44. Просмотров 1336. Ответов 17
Метки нет (Все метки)

Доброго времени суток!

Возможно ли сделать так, чтобы выпадали в случайном порядке числа 0, 2, 6, 8?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.07.2015, 15:44
Ответы с готовыми решениями:

Нужно чтобы случайные числа вставали в конец массива,а не удаляли числа
#include <iostream> using namespace std; void main() { setlocale(LC_ALL, "Russian"); int n;...

Случайные числа
Создать матрицу случайных чисел, если max элемент располагается левее минимального то тогда сложить...

Случайные числа
Написать генератор псевдослучайных чисел по алгоритму f(n) = f(n-1) + f(n-2) + f(n-3) ( f0 = f1 =...

Случайные числа в C++
нужно присвоить переменной числа от -50 до 50, как сделать?

17
419 / 418 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
28.07.2015, 16:20 2
В самом простом случае
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <cstdlib>
#include <ctime>
 
int rnd(){
    int r=rand()%9;;
    while (r==1 || r==3 || r==5 || r==7)
        r=rand()%9;
    return r;
    }
int main(){
    srand(time(0));
    for (int i=0; i<50; ++i)
        std::cout << rnd() << " ";
    return 0;
    }
0
73 / 73 / 18
Регистрация: 29.11.2011
Сообщений: 348
28.07.2015, 16:27 3
Цитата Сообщение от vua72 Посмотреть сообщение
В самом простом случае
И сколько времени в среднем она выполнятся будет?

Добавлено через 3 минуты
Тогда уж
C++
1
2
3
4
5
6
int rnd()
{
 unsigned int rr = rand()%4;
 if(rr>1)rr++;
 return(rr*2);
}
0
2376 / 1785 / 389
Регистрация: 15.12.2013
Сообщений: 7,579
28.07.2015, 16:34 4
Цитата Сообщение от David_Ok Посмотреть сообщение
Возможно ли сделать так, чтобы выпадали в случайном порядке числа 0, 2, 6, 8?
в массив и затем перемешиваете случайным образом.
0
419 / 418 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
28.07.2015, 17:21 5
Цитата Сообщение от Praktolock Посмотреть сообщение
И сколько времени в среднем она выполнятся будет?
ну и сколько?

Добавлено через 8 минут
S_el,
ну это простейший случай.
C++
1
2
3
4
int rnd_0268(){
    static int nums[]={0,2,6,8};
    return nums[rand()%4];
    }
0
2376 / 1785 / 389
Регистрация: 15.12.2013
Сообщений: 7,579
28.07.2015, 17:23 6
vua72, вот именно.Правда предполагалось,что реализовывать будет ТС.
Кстати ваш второй вариант еще проще.
0
73 / 73 / 18
Регистрация: 29.11.2011
Сообщений: 348
28.07.2015, 17:41 7
Цитата Сообщение от vua72 Посмотреть сообщение
ну и сколько?
Рандомный промежуток времени

Добавлено через 41 секунду
Если дико не повезет, то может и час выполняться
0
Эксперт С++
4964 / 3070 / 456
Регистрация: 10.11.2010
Сообщений: 11,159
Записей в блоге: 10
28.07.2015, 18:13 8
C++
1
(int)("0268"[rand() % 4] - '0')
3
6 / 6 / 1
Регистрация: 12.01.2015
Сообщений: 87
28.07.2015, 20:38  [ТС] 9
Цитата Сообщение от castaway Посмотреть сообщение
(int)("0268"[rand() % 4] - '0')
а можете пожалуйста пояснить что есть чем, в какие переменные записываются выпавшие числа?
0
Эксперт С++
4964 / 3070 / 456
Регистрация: 10.11.2010
Сообщений: 11,159
Записей в блоге: 10
28.07.2015, 20:40 10
Лучший ответ Сообщение было отмечено David_Ok как решение

Решение

Какую подставишь, в такую и будут записываться.
C++
1
int i = (int)("0268"[rand() % 4] - '0')
1
6 / 6 / 1
Регистрация: 12.01.2015
Сообщений: 87
29.07.2015, 00:29  [ТС] 11
Цитата Сообщение от castaway Посмотреть сообщение
Какую подставишь, в такую и будут записываться.
Огромное вам спасибо! Все работает, только есть вопрос по-поводу
C++
1
 - '0'
что это в данном случае значит?
0
Модератор
1599 / 1059 / 480
Регистрация: 17.07.2012
Сообщений: 5,241
29.07.2015, 00:33 12
int i = (int)("0268"[rand() % 4] - '0')
David_Ok, в этом коде берется строка 0268, затем берется случайное число от 0 до 3 и с этим номером берется символ строки.Символ строки - char это порядковый тип. Если взять скажем '0' то при присвоении инту будет 48.У '1' код 49 и.т.д, потому нужно отнять '0'.
1
2376 / 1785 / 389
Регистрация: 15.12.2013
Сообщений: 7,579
29.07.2015, 00:34 13
Цитата Сообщение от David_Ok Посмотреть сообщение
что это в данном случае значит?
тоже что и всегда - вычитание. В данном случае из числового представления(кода) символа,являющимся элементом строки вычитается код символа '0'.
1
6 / 6 / 1
Регистрация: 12.01.2015
Сообщений: 87
29.07.2015, 00:35  [ТС] 14
Большое вам спасибо!
0
Модератор
Эксперт по электронике
8274 / 6133 / 822
Регистрация: 14.02.2011
Сообщений: 21,327
29.07.2015, 00:37 15
Цитата Сообщение от David_Ok Посмотреть сообщение
Все работает, только есть вопрос по-поводу
только один?
ты хоть понял что castaway, написал?
это вообще "высший пилотаж", неявная работа с массивами
взял бы ты програмки от vua72, или Praktolock, и с ними бы разобрался
0
6 / 6 / 1
Регистрация: 12.01.2015
Сообщений: 87
29.07.2015, 00:40  [ТС] 16
Цитата Сообщение от ValeryS Посмотреть сообщение
взял бы ты програмки от vua72, или Praktolock, и с ними бы разобрался
Ага, я то разберусь с чем мне разбераться, а с чем нет, а тебе советую разобраться куда сувать свой нос а куда нет.
0
6 / 6 / 1
Регистрация: 12.01.2015
Сообщений: 87
29.07.2015, 00:41  [ТС] 17
Цитата Сообщение от ValeryS Посмотреть сообщение
взял бы ты програмки от vua72, или Praktolock, и с ними бы разобрался
Ага, я то разберусь с чем мне разбераться, а с чем нет
0
vua72
29.07.2015, 13:28     Случайные числа
  #18

Не по теме:

ValeryS, я-то пытался его натолкнуть на решение корявым кодом, но тут "помогли" (Praktolock), а теперь похоже записали совсем в ламеры :)))

0
29.07.2015, 13:28
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.07.2015, 13:28
Привет! Вот еще темы с ответами:

Случайные числа. if, else
Подскажите, как мне сделать так. чтобы показывало рандомное число и выводило либо how, либо Today ...

Случайные числа
Всем привет! Мне нужно сгенерировать действительное случайное число в диапазоне от нуля до 1. Читал...

Случайные числа
как выполнить генератор случайных чисел генерировал любое число и присваивал число переменной

случайные числа
rand() в VS имеет диапазон от 0 до 32768? даже изменение RAND_MAX ничего не повысит верхний уровень?


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.