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

Из заданного диапазона выбрать 5 случайных чисел - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
Kabansk
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 7
16.10.2012, 09:59     Из заданного диапазона выбрать 5 случайных чисел #1
Начальная версия:
Задача такая: надо из задонова диапозона (допустим от1 до 50) выбрать (допустим 5 случайных чисел) и проделать это (допустем 100 раз) при этом запомнить каждый результат !!! и вконце выдать теже (5) самых больше повторяюшихся чисел(100) ну вот так какта все !!! сам еше плоха разбераюся в с++ жду предложений как это лучще зделать ))))

Заход второй:
Задача такая: надо из заданного диапазона (допустим от1 до 50) выбрать (допустим 5 случайных чисел) и проделать это (до пустим 100 раз) при этом запомнить каждый результат !!! и в конце выдать те же (5) самых больше повторяющихся чисел ( из 100) ну вот так как та. Все !!! сам еще плоха разбираюсь в с++ жду предложений как это лучше сделать ))))

Правильный вариант:
Задача: из заданного диапазона (допустим, от 1 до 50) выбрать несколько (к примеру, 5) случайных чисел и проделать это определенное число (пусть будет 100) раз. При этом необходимо запомнить каждый результат(!) и в конце выдать 5 наиболее часто повторяющихся чисел (из 100). Ну вот как-то так. Все! Сам еще плохо разбираюсь в C++. Жду предложений, как это лучше сделать

Добавлено через 14 часов 56 минут
Видать задача совсем легкая раз так много предложений
1)ну допустим будем вибирать случайные числа вот по этой формуле:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//--------------------------------//
 
 unsigned long mwc()
 {
    static unsigned long x = 123456789,
        y = 362436069,
        z = 77465321,
        c = 13579;
    unsigned long long t;
    t = 916905990LL * x + c;
    x = y;
    y = z;
    c = t >> 32;
    return z = t & 0xffffffff;
 }
 
 //--------------------------------//
и как получить сразу несколько ? и чтоб была исключена возможность повторения !

Добавлено через 3 минуты
2)допустим первая задача решена полученые результаты лучше записывать в масив ?

Добавлено через 1 час 44 минуты
3)а ели так : из 1 до 50 случано выбрать 1 , а седующее числа тоже выбрать случайно исключая уже выбраные ?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2012, 09:59     Из заданного диапазона выбрать 5 случайных чисел
Посмотрите здесь:

Функция, возвращающая х случайных, не равных друг другу, чисел из диапазона от y до z C++
Заполнение двумерного массива случайными числами из заданного диапазона C++
C++ Составить функцию, которая возвращает N случайных неповторяющихся целых чисел из диапазона
Написать программу для ввода числа из заданного диапазона C++
Как в последовательности чисел заданного количества элементов выбрать семь последних? C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
16.10.2012, 11:15     Из заданного диапазона выбрать 5 случайных чисел #2
Определяете обычный массив чисел размером 500 (по 5 чисел 100 раз, особой же разницы нет, как хранить числа), заполняете их рандомными числами заданного диапазона, затем сортируете масссив (так как умеете) и выводите первые 5 наибольших чисел с начала или з конца массива (в зависимости как отсортировали). Сразу скажу, что в большинстве случаев, 5 наибольших чисел с данного диапазона (допустим от 1 до 50) будут всегда 50. Вот пример моего варианта:
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 <algorithm>
#include <iomanip>
#include <functional>
#include <ctime>
using namespace std;
 
int main()
{
    srand(time(0));
    int arr[500];
    for (int i = 0; i<500; i++)
    {
        arr[i] = 1+rand()%50;
        if (i%5==0) cout<<endl;
        cout<<setw(2)<<arr[i]<<" ";
    }
    sort(arr, arr+500, greater<int>());
    cout<<"\n***************\n"<<endl;
    for (int i = 0; i<5; i++)
        cout<<arr[i]<<" ";
    cout<<endl;
    system("pause");
    return 0;
Добавлено через 1 минуту
C++
1
скобку забыл: }
Kabansk
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 7
16.10.2012, 11:44  [ТС]     Из заданного диапазона выбрать 5 случайных чисел #3
да брет какойта получаеться вот число 50 во всем масиве повторяеться всего 10 раз а вот к примеру 40 аж 16 раз

Добавлено через 5 минут
перешетал еще раз 50 -12раз . 40 -17 раз !
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
16.10.2012, 11:56     Из заданного диапазона выбрать 5 случайных чисел #4
Kabansk,
C++
1
arr[i] = 1+rand()%50;
Это значит, что каждый элемент массива равен 1..50
таких элементов 500
Это значит, что каждое число в среднем будет встречаться 10 раз
Kabansk
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 7
16.10.2012, 12:14  [ТС]     Из заданного диапазона выбрать 5 случайных чисел #5
да придется в одиночку мучиться с задачкой )

Добавлено через 2 минуты
не вы вобше сами хоть думаети что пишете I.M.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
16.10.2012, 12:37     Из заданного диапазона выбрать 5 случайных чисел #6
Цитата Сообщение от Kabansk Посмотреть сообщение
вот число 50 во всем масиве повторяеться всего 10 раз а вот к примеру 40 аж 16 раз
Представляешь, теория вероятности утверждает, что даже все 500 чиселок могут оказаться одинаковыми в одном случае из 100500 запусков.
I.M.
 Аватар для I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
16.10.2012, 12:38     Из заданного диапазона выбрать 5 случайных чисел #7
Цитата Сообщение от Kabansk Посмотреть сообщение
не вы вобше сами хоть думаети что пишете I.M.
Думаю. Где не прав?
Kabansk
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 7
16.10.2012, 13:20  [ТС]     Из заданного диапазона выбрать 5 случайных чисел #8
Deviaphan теория вероятности пусть утверждает что угодно ну судя из моей задачи это не возможно веть массив будет состаять допустим из выраженя 5 уже разных чисел и их бует 100 штук причем еще вырожения не должны совплдать !!!!!!!!!!!!!!!!!!!!!
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
16.10.2012, 13:35     Из заданного диапазона выбрать 5 случайных чисел #9
А давай ты попробуешь сформулировать свою проблему без "допустим", "как-то так" и "к примеру". Сейчас я забываю о чём ты спрашиваешь прежде, чем до конца первое предложение дочитать успеваю. А уж о том, как решить поставленную задачу и речи нет. Формулируй мысли головой.)
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
16.10.2012, 13:47     Из заданного диапазона выбрать 5 случайных чисел #10
Kabansk, вот еще один вариант, надеюсь что подойдет. Протестируйте сами.
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
#include <iostream>
#include <algorithm>
#include <iterator>
#include <map>
#include <iomanip>
#include <ctime>
#include <vector>
using namespace std;
 
bool my_greater(const pair<int, int> const& x, const pair<int, int> const& y)
{
    return x.second > y.second;
}
int main()
{
    srand(time(0));
    map<int, int> m;
    int temp;
    for (int i = 0; i<500; i++)
    {
        temp = 1+rand()%50;
        m[temp]++;
        if (i%5==0) cout<<endl;
        cout<<setw(2)<<temp<<" ";
    }
    vector<pair<int, int> > my_vector;
    cout<<"\n***************\n"<<endl;
    copy(m.begin(), m.end(), back_inserter(my_vector));
    sort(my_vector.begin(), my_vector.end(), my_greater);
    for (int i = 0; i<5; i++)
        cout<<my_vector[i].first<<" ";
    cout<<endl;
    system("pause");
    return 0;
}
Kabansk
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 7
16.10.2012, 13:51  [ТС]     Из заданного диапазона выбрать 5 случайных чисел #11
Deviaphan вижу вы хорошо знаити статистику и блогодоря вам я прозрел ... ведь должно же быть опреденено количество комбинаций !!! к примере в диапозоне (1;50) 5 значных не пофторяюшихся )))
случеем не заете формулу расчета !
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
16.10.2012, 13:53     Из заданного диапазона выбрать 5 случайных чисел #12
Цитата Сообщение от Kabansk Посмотреть сообщение
к примере в диапозоне (1;50) 5 значных не пофторяюшихся
В диапазоне (1;50) нету ни одного пятизначного числа.) Так что да, не повторяются.)
Kabansk
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 7
16.10.2012, 14:00  [ТС]     Из заданного диапазона выбрать 5 случайных чисел #13
ладно не правельно написал извеняюся ) сам поишу спасибо

Добавлено через 1 минуту
имел виду 5 значвых не повторяюшихся комбинаций !!!

Добавлено через 33 секунды
имел виду 5 значных не повторяюшихся комбинаций !!!
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
16.10.2012, 14:09     Из заданного диапазона выбрать 5 случайных чисел #14
Резюмирую.
1. Нужно из диапазона (1:50) получить все комбинации из пяти неодинаковых чисел. (или не все, а "допустим 100 комбинаций") и сохранить каждую комбинацию.
2. Вывести пять чисел, которые чаще других побывали в этих комбинациях.

Из ит тру?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2012, 14:25     Из заданного диапазона выбрать 5 случайных чисел
Еще ссылки по теме:

C++ Выбрать отрицательные числа из диапазона и записать их в файл.
Вывести сумму всех чётных и нечетных чисел заданного диапазона C++
Из заданного интервала натуральных чисел выбрать и напечатать все пары дружественных чисел C++

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

Или воспользуйтесь поиском по форуму:
Kabansk
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 7
16.10.2012, 14:25  [ТС]     Из заданного диапазона выбрать 5 случайных чисел #15
да примерно так и надо !!!
Yandex
Объявления
16.10.2012, 14:25     Из заданного диапазона выбрать 5 случайных чисел
Ответ Создать тему
Опции темы

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