Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 16, средняя оценка - 4.81
Kabansk
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 7
#1

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

16.10.2012, 09:59. Просмотров 2043. Ответов 14
Метки нет (Все метки)

Начальная версия:
Задача такая: надо из задонова диапозона (допустим от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 , а седующее числа тоже выбрать случайно исключая уже выбраные ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.10.2012, 09:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Из заданного диапазона выбрать 5 случайных чисел (C++):

Формула для генерации случайных чисел заданного диапазона - C++
srand(time(NULL)); int massize = 3; int mas; for (int i = 0; i < massize; i++) { for (int b = 0; b < massize; b++) { ...

Функция, возвращающая х случайных, не равных друг другу, чисел из диапазона от y до z - C++
Нужна функция желательно на разных языках (С, С++, perl, php) которая бы возвращала х случайных не равных друг другу чисел из диапазона...

Составить функцию, которая возвращает N случайных неповторяющихся целых чисел из диапазона - C++
Помогите плизз Составить функцию, которая возвращает N случайных неповторяющихся целых чисел из диапазона . Главная...

Используя генератор случайных чисел заполнить два заданных массива числами из указанного диапазона - C++
Помогите пожалуйста С помощью генератора случайных чисел занести в массивы Х(12) и Y(12) числа из диапазона от -10 до 15. Написать...

Вывести нечетные чисел из заданного диапазона кратные 5 - C++
помогите написать программу для вывода нечетных чисел из этого диапазона, чисел кратных 5 #include <iostream> using namespace std; ...

Вычислить произведение всех отрицательных чисел из заданного диапазона - C++
Вычислить произведение всех отрицательных чисел из диапазона x, y - вводятся с клавиатуры

14
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
16.10.2012, 11:15 #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
скобку забыл: }
1
Kabansk
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 7
16.10.2012, 11:44  [ТС] #3
да брет какойта получаеться вот число 50 во всем масиве повторяеться всего 10 раз а вот к примеру 40 аж 16 раз

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

Добавлено через 2 минуты
не вы вобше сами хоть думаети что пишете I.M.
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
16.10.2012, 12:37 #6
Цитата Сообщение от Kabansk Посмотреть сообщение
вот число 50 во всем масиве повторяеться всего 10 раз а вот к примеру 40 аж 16 раз
Представляешь, теория вероятности утверждает, что даже все 500 чиселок могут оказаться одинаковыми в одном случае из 100500 запусков.
0
I.M.
565 / 548 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
16.10.2012, 12:38 #7
Цитата Сообщение от Kabansk Посмотреть сообщение
не вы вобше сами хоть думаети что пишете I.M.
Думаю. Где не прав?
0
Kabansk
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 7
16.10.2012, 13:20  [ТС] #8
Deviaphan теория вероятности пусть утверждает что угодно ну судя из моей задачи это не возможно веть массив будет состаять допустим из выраженя 5 уже разных чисел и их бует 100 штук причем еще вырожения не должны совплдать !!!!!!!!!!!!!!!!!!!!!
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
16.10.2012, 13:35 #9
А давай ты попробуешь сформулировать свою проблему без "допустим", "как-то так" и "к примеру". Сейчас я забываю о чём ты спрашиваешь прежде, чем до конца первое предложение дочитать успеваю. А уж о том, как решить поставленную задачу и речи нет. Формулируй мысли головой.)
1
DiffEreD
1431 / 768 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
16.10.2012, 13:47 #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;
}
1
Kabansk
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 7
16.10.2012, 13:51  [ТС] #11
Deviaphan вижу вы хорошо знаити статистику и блогодоря вам я прозрел ... ведь должно же быть опреденено количество комбинаций !!! к примере в диапозоне (1;50) 5 значных не пофторяюшихся )))
случеем не заете формулу расчета !
0
Deviaphan
Делаю внезапно и красиво
Эксперт С++
1306 / 1221 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
16.10.2012, 13:53 #12
Цитата Сообщение от Kabansk Посмотреть сообщение
к примере в диапозоне (1;50) 5 значных не пофторяюшихся
В диапазоне (1;50) нету ни одного пятизначного числа.) Так что да, не повторяются.)
0
Kabansk
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 7
16.10.2012, 14:00  [ТС] #13
ладно не правельно написал извеняюся ) сам поишу спасибо

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

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

Из ит тру?
1
Kabansk
0 / 0 / 0
Регистрация: 15.10.2012
Сообщений: 7
16.10.2012, 14:25  [ТС] #15
да примерно так и надо !!!
0
16.10.2012, 14:25
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2012, 14:25
Привет! Вот еще темы с ответами:

Вывести сумму всех чётных и нечетных чисел заданного диапазона - C++
Нужно:5й из диапазона чисел от c до q (c и q вводит пользователь) вывести сумму всех чётных чисел, сумму всех не чётных чесел. #include...

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

Поиск минимального и максимального чисел из заданного диапазона, ни разу не встречающихся в заданном массиве - C++
Как найти числа которые ни разу не встречаются в массиве? И как это записать в виде функции? Полное условие задачи вот: решать не...

Запишите шесть строк, состоящих из двух случайных чисел типа int, которые не больше 10 и трех случайных чисел - C++
Запишите шесть строк, состоящих из двух случайных чисел типа int, которые не больше 10 и трех случайных чисел типа float, что не больше...


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

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

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