Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/16: Рейтинг темы: голосов - 16, средняя оценка - 5.00
Pirat-SR
66 / 66 / 10
Регистрация: 20.02.2012
Сообщений: 234
1

Генерация случайных чисел с учётом уже имеющихся чисел. (C++ Builder 6)

31.05.2012, 23:49. Просмотров 2957. Ответов 9
Метки нет (Все метки)

Здравствуйте. Появилось желание создать программу генерации случайных чисел с учётом уже имеющихся чисел. Идея в том, что в TEdit вводится любое 12-ти значное число и это число заносится в .txt файл. При нажатии на кнопку программа считывает все 12-ти значные числа из файла .txt и выводит в результате одно 12-ци значное число с учётом уже написанных в файле .txt. При каждом новом добавлении в файл .txt программа будет лучше генерировать 12-ти значное число, самообучающаяся программа так сказать. Скажите пожалуйста как такое реализовать и если можно примеры подскажите. (Извините если непонятно объяснил).
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
31.05.2012, 23:49
Ответы с готовыми решениями:

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

Генерация случайных чисел. Нормальное распределение
Стоит задача сгенерировать 800 случайных чисел с заданным мат.ожиданием и отклонением за законом...

Генерация случайных чисел от 1 до 9 без повторений
Помогите, не могу понять в чем дела, вроде все правильно и ошибок нет, но при запуске чет она у...

Ввести массив из 11 чисел и создать новый, состоящий из чисел, стоящих до минимального. C++ Builder
Ввести массив из 11 чисел и создать новый, состоящий из чисел, стоящих до минимального. C++ Builder

Задача такое нужно построить случайных величин и генерация случайных чисел(ГСЧ
Народ помогите тут надо. Задание такое нужно построить случайных величин и генерация случайных...

9
Gremlin
516 / 304 / 58
Регистрация: 30.07.2008
Сообщений: 607
01.06.2012, 00:40 2
по объяснению я понял, что числа не должны повторяться да?
"то есть в файле все числа уникальные"
1
Pirat-SR
66 / 66 / 10
Регистрация: 20.02.2012
Сообщений: 234
01.06.2012, 00:56  [ТС] 3
Цитата Сообщение от Gremlin Посмотреть сообщение
по объяснению я понял, что числа не должны повторяться да?
"то есть в файле все числа уникальные"
Да, Вы верно поняли
0
Gremlin
516 / 304 / 58
Регистрация: 30.07.2008
Сообщений: 607
01.06.2012, 01:16 4
тогда 2 варианта

1) пройтись по списку, и если уже такое число есть, то заново сгенерировать и о5 пройтись
(-) в перспективе, то моет привести к зацикливанию, и долгой обработке
(+) каждая строка уникальна, и каждый вызов функции в конце концов добавит число

2) генерировать, и добавлять в текст, и с удалением дубликатов
(-) если сгенерировалось число а оно уже есть в списке, то ничего не произойдет
(+) довольно быстро
1
01.06.2012, 01:16
Pirat-SR
66 / 66 / 10
Регистрация: 20.02.2012
Сообщений: 234
01.06.2012, 01:22  [ТС] 5
Спасибо А как это всё реализовать, т.е. код какой нужен, ну или в каких книгах посмотреть?
0
Gremlin
516 / 304 / 58
Регистрация: 30.07.2008
Сообщений: 607
01.06.2012, 01:42 6
ну вот как то так
1
Вложения
Тип файла: zip Новая папка (3).zip (891.4 Кб, 88 просмотров)
Avazart
Эксперт С++
7823 / 5721 / 563
Регистрация: 10.12.2010
Сообщений: 26,158
Записей в блоге: 17
01.06.2012, 01:53 7
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
#include <set>
#include <algorithm>
//---------------------------------------
class generator
{
  std::set<int> s;
 public:
  int operator()()
   {
   int i= rand()%100;
   while (s.find(i)!=s.end()) i= rand()%100;
   return i;
   }
  void reset() { s.clear(); }
} gen;
//---------------------------------------
int _tmain(int argc, _TCHAR* argv[])
{
system("chcp 1251");
 
int a[20];
 
std::generate(&a[0],&a[20],gen);
 
for(int i=0;i<20;++i) cout<<a[i]<<" ";
cout<<endl;
 
system("pause");
return 0;
}
//---------------------------------------------------------------------------
1
Pirat-SR
66 / 66 / 10
Регистрация: 20.02.2012
Сообщений: 234
01.06.2012, 01:54  [ТС] 8
Gremlin, Спасибо Проблемка возникла, я добавил свои числа но программа всё равно генерерует свои числа, может что-то подправить нужно?
0
Gremlin
516 / 304 / 58
Регистрация: 30.07.2008
Сообщений: 607
01.06.2012, 02:17 9
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
//---------------------------------------------------------------------------
bool MyFunc()
{
    Randomize();
    RandSeed = GetTickCount();
    Randomize();
 
    String temp = "";
    for(int i = 0; i < 2; i++) // генерируем на 2 число из символов
    {
        temp = temp + String(rand()%10);
    }
    Form1->Label1->Caption = "сгенерированное число: " + temp;
в строке temp и есть сгенерированное число, от которого и оттталкиваюсь
1
Avazart
Эксперт С++
7823 / 5721 / 563
Регистрация: 10.12.2010
Сообщений: 26,158
Записей в блоге: 17
01.06.2012, 02:38 10
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <set>
int main()
{
system("chcp 1251");
 
std::set<int> s;
 
while(s.size()!=20) s.insert(rand()%100);
 
int a[20];
 
std::copy(s.begin(),s.end(),a);
std::random_shuffle(&a[0],&a[20]);
 
for(int i=0;i<20;++i) std::cout<<a[i]<<" ";
std::cout<<std::endl;
 
system("pause");
return 0;
}
1
01.06.2012, 02:38
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.06.2012, 02:38

Генерация случайных чисел
Здравствуйте! Мне нужно сгенерировать случайные числа, много и за секунду или быстрей. Можно ли...

Генерация случайных чисел
Парни, подскажите как сделать генератор случайных чисел. Мы вводим диапазон чисел например 0-3,...

Генерация случайных чисел
Сгенерировать 10 целых чисел из промежутка: 1) от 0 до 20, 2)от 10 до 40. Программа Лазарус....


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

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

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