Форум программистов, компьютерный форум CyberForum.ru

Как функцией rand() генерировать упорядоченные тройки различных чисел - C++

Восстановить пароль Регистрация
 
Zanexess
 Аватар для Zanexess
111 / 84 / 28
Регистрация: 22.10.2010
Сообщений: 224
24.03.2014, 23:21     Как функцией rand() генерировать упорядоченные тройки различных чисел #1
Как функцией rand() генерировать упорядоченные тройки различных чисел от [0; 1000) не используя ни циклов, ни условий, ни условных операторов?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.03.2014, 23:21     Как функцией rand() генерировать упорядоченные тройки различных чисел
Посмотрите здесь:

Помогите с функцией rand C++
Как работать с функцией rand() C++
Проблема с программой: Задаются 10 чисел функцией rand(). Определить сумму их квадратов C++
C++ Напишите пожалуйста Код программы генерирующей случайные величины но не функцией Rand
Упорядочить массив так, чтобы сначала иши упорядоченные положительные члены а потом упорядоченные отрицательные члены C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
24.03.2014, 23:51     Как функцией rand() генерировать упорядоченные тройки различных чисел #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <ctime>
 
void SetCoord (int &x, int &y, int &z)
{   x = rand()%1000;
    y = rand()%1000;
    z = rand()%1000;
}
 
int main()
{   srand ((unsigned int) time (NULL));
    int x,y,z;
    x = y = z = 0;
 
    SetCoord (x,y,z);
    std :: cout << x << '\t' << y << '\t' << z;
 
    getchar();
    return 0;
}
Arigato
Программист
 Аватар для Arigato
278 / 175 / 94
Регистрация: 05.12.2013
Сообщений: 568
Записей в блоге: 5
24.03.2014, 23:54     Как функцией rand() генерировать упорядоченные тройки различных чисел #3
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <ctime>
#include <iostream>
 
using namespace std;
 
void main()
{
    int a,b,c;
    srand((unsigned)time(NULL));
    a=rand()%998;
    b=a+rand()%(998-a)+1;
    c=b+rand()%(999-b)+1;
    cout<<a<<" "<<b<<" "<<c<<endl;
    system("pause");
}
Zanexess
 Аватар для Zanexess
111 / 84 / 28
Регистрация: 22.10.2010
Сообщений: 224
25.03.2014, 00:18  [ТС]     Как функцией rand() генерировать упорядоченные тройки различных чисел #4
IrineK,
Так они могут совпасть.
Arigato_RU,
Ты тем самым просто обрубаешь нижний предел.
Допустим у меня 778, но мне недостаточно получить число больше 778, возможно меня устроит и 1 с 5-кой.
Хотя если под упорядоченной тройкой считать A < B < C, то ты безусловно прав.


Тут скорее упорядоченные наборы даже.
Было бы все так просто.
Есть более хитрые способы?
IrineK
Заблокирован
25.03.2014, 00:50     Как функцией rand() генерировать упорядоченные тройки различных чисел #5
Цитата Сообщение от Zanexess Посмотреть сообщение
Так они могут совпасть.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#include <iostream>
#include <ctime>
 
void SetCoord (int &x, int &y, int &z)
{   x = rand()%1000;
    y = rand()%1000;
    while (x==y)
         y = rand()%1000;
    z = rand()%1000;
    while (x==z || y==z)
         z = rand()%1000;
}
 
int main()
{   srand ((unsigned int) time (NULL));
    int x,y,z;
    x = y = z = 0;
 
    SetCoord (x,y,z);
    std :: cout << x << '\t' << y << '\t' << z;
 
    getchar();
    return 0;
}
Arigato
Программист
 Аватар для Arigato
278 / 175 / 94
Регистрация: 05.12.2013
Сообщений: 568
Записей в блоге: 5
25.03.2014, 00:51     Как функцией rand() генерировать упорядоченные тройки различных чисел #6
Я не понимаю, что ты хочешь. "упорядоченные тройки различных чисел" - это и есть "A < B < C".
Zanexess
 Аватар для Zanexess
111 / 84 / 28
Регистрация: 22.10.2010
Сообщений: 224
25.03.2014, 01:05  [ТС]     Как функцией rand() генерировать упорядоченные тройки различных чисел #7
Ладно. Вопрос снят. Будут условия таки.
IrineK
Заблокирован
25.03.2014, 01:33     Как функцией rand() генерировать упорядоченные тройки различных чисел #8
Может тогда и одинаковые можно?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.03.2014, 10:32     Как функцией rand() генерировать упорядоченные тройки различных чисел
Еще ссылки по теме:

Как пользоваться функцией rand()? C++
C++ Случайная последовательность чисел, генерируемой rand() функцией
C++ Дан массив из 12 чисел. Поменять местами 1 и 4 тройки чисел, а также 2 и 3 тройки

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

Или воспользуйтесь поиском по форуму:
SatanaXIII
Супер-модератор
Эксперт С++
 Аватар для SatanaXIII
5548 / 2562 / 233
Регистрация: 01.11.2011
Сообщений: 6,332
Завершенные тесты: 1
25.03.2014, 10:32     Как функцией rand() генерировать упорядоченные тройки различных чисел #9
Цикл только для вывода.
Цитата Сообщение от Arigato_RU Посмотреть сообщение
"A < B < C"
соблюдается. Правда с rand() это ужос (все жмутся к максимальному пределу).


C++
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
#include <iostream>
using namespace std;
 
bool neo( int *arr, unsigned  int n, unsigned int min_limit, unsigned  int &max_limit )
{
if( max_limit - min_limit < n )
  return true; // error
 
if( n <= 0 )
  return false;
else
  {
  arr[--n] = min_limit + rand() % (max_limit - min_limit - n);
  neo( arr, n, arr[n]+1, max_limit ); // +1 чтобы не повторялись соседние
  }
return false;
}
 
 
 
int main()
{
const unsigned int n = 3;       //// Входные данные
unsigned int min_limit = 0;       //
unsigned int max_limit = 1000;  ////
 
int trinity[n];                       // Сам массив
 
srand(time(NULL));
 
 
if( !neo( trinity, n, min_limit, max_limit ) ) // Если все ништяк
  for( unsigned int i=0; i<n; i++ )            //  то вывести все
    cout << trinity[i] << endl;                //  это барахло
else
  cout << "n to large" << endl;
 
system("pause > pause-1");
return 0;
}
Yandex
Объявления
25.03.2014, 10:32     Как функцией rand() генерировать упорядоченные тройки различных чисел
Ответ Создать тему
Опции темы

Текущее время: 05:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru