Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/21: Рейтинг темы: голосов - 21, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 3

Программа генерации последовательностей нулей и единиц

24.06.2015, 17:47. Показов 4572. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
помогите пожалуйста написать программу генерации m-последовательностей 0 и 1, удовлетворяющих обоим требованиям:
1) никакие 3 единицы не стоят рядом;
2) число единиц превосходит число нулей.
единственное знаю, что для написания этой программы нужно использовать алгоритм генерации сочетаний без повторений для номеров мест, на которые будут расставляться 0 или 1..
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.06.2015, 17:47
Ответы с готовыми решениями:

Рекурсия для начинающих. Определите, сколько существует последовательностей из a нулей и b единиц, в которых никакие два нуля не стоят рядом
Даны числа a и b. Определите, сколько существует последовательностей из a нулей и b единиц, в которых никакие два нуля не стоят рядом.В...

Получить все n-элементные последовательности из нулей и единиц содержащие ровно m единиц (m<=n)
Получить все n-элементные последовательности из нулей и единиц содержащие ровно m единиц (m&lt;=n) Помогите, пожалуйста

В строке, состоящей из групп нулей и единиц, подсчитать количество единиц в группах с нечетным количеством
В строке состоящей из групп нулей и единиц ,подсчитать количество единиц в группах с нечетным количеством в группах. Помогите...

5
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
24.06.2015, 18:33
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
41
42
43
44
class Random {
private:
  static unsigned long int next;
public:
  static void srand(unsigned int);
  int get(int);
};
unsigned long int Random::next = 1;
 
void Random::srand(unsigned int seed){
  next = seed;
}
 
int Random::get(int i=32767){
  next = next*25214903917+11;
  return ((unsigned int)next>>16)%i;
}
 
#include <stdio.h>
#include <time.h>
 
int main () {
  Random::srand(time(0));
  Random rand;
  
  int kol=0, kol0=0, kol1=0;
  for (int i=0;i<1000;i++) {
    if (rand.get(4)==0){//1 встречается в три раза чаще
      kol=0;
      printf("0");kol0++;
    } else {
      kol++;
      if (kol>2) {
        kol=0;
        printf("0");kol0++;
      } else {
        printf("1");kol1++;
      }
    }
  }
  puts("");
  printf("0: %i\n",kol0);
  printf("1: %i\n",kol1);
}
0
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 3
24.06.2015, 19:11  [ТС]
что-то я не совсем поняла что делает класс Рандом и как он это делает
0
Просто Лис
Эксперт Python
 Аватар для Рыжий Лис
5972 / 3734 / 1099
Регистрация: 17.05.2012
Сообщений: 10,791
Записей в блоге: 9
25.06.2015, 10:47
Я просто пошутил с классом Рандом.
https://ru.wikipedia.org/wiki/... 0%BE%D0%B4

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
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main () {
  srand(time(0));
  
  int kol=0, kol0=0, kol1=0;
  for (int i=0;i<1000;i++) {
    if ((rand()%4)==0){//1 встречается в три раза чаще
      kol=0;
      printf("0");kol0++;
    } else {
      kol++;
      if (kol>2) {
        kol=0;
        printf("0");kol0++;
      } else {
        printf("1");kol1++;
      }
    }
  }
  puts("");
  printf("0: %i\n",kol0);
  printf("1: %i\n",kol1);
}
0
 Аватар для ПерС
587 / 490 / 371
Регистрация: 05.11.2013
Сообщений: 1,271
Записей в блоге: 6
25.06.2015, 11:05
ну вот такой простой код, наверное, тоже будет порождать не противоречащие условию цепочки чисел
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 <stdlib.h>
#include <windows.h>
#include <time.h>
using namespace std;
 
int main(void) {
 const int m=200;
 int *a = new int [m];
 int n0=0,n1=0;
 srand((unsigned)time(NULL));
 for (int i=0; i<m; i++) {
  if (i>2 && a[i-2]==1 && a[i-1]==1) { a[i]=0; n0++; }
  else if (n0>=n1-1) { a[i]=1; n1++; }
  else {
   if (rand()%2) { a[i]=1; n1++; }
   else { a[i]=0; n0++; }
  }
  cout << a[i] << " ";
 }
 cout << "n(0)=" << n0 << " n(1)=" << n1 << endl;
 system("pause");
 return 0;
}
1
Диссидент
Эксперт C
 Аватар для Байт
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
25.06.2015, 11:44
Рыжий Лис, ПерС, Не очень врубаюсь при чем здесь rand?
Лично я понял, что необходимо сгенерировать ВСЕ такие последовательности.
Цитата Сообщение от Надя2338 Посмотреть сообщение
нужно использовать алгоритм генерации сочетаний без повторений для номеров мест, на которые будут расставляться 0 или 1..
Похоже на правду. На форуме алгоритмы таких генераций встречаются довольно часто. Вот один из них Получить все n-элементные последовательности из нулей и единиц содержащие ровно m единиц (m<=n)
Но встречаются и алгоритмы, реализованные на чистом Си без этих next_permutation
Правда, потом все равно придется проверять на
Цитата Сообщение от Надя2338 Посмотреть сообщение
никакие 3 единицы не стоят рядом;
и отбрасывать их...
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.06.2015, 11:44
Помогаю со студенческими работами здесь

Составить последовательность из нулей и единиц без соседних единиц
помогите пожалуйста! проблема на экзамене составить последовательность из нулей и единиц без соседних единиц буду благодарен

Необходимо найти и посчитать максимальную последовательность нулей в последовательности нулей и единиц
Как бы Вы реализовали?

Найти самую длинную непрерывную цепочку нулей в последовательности нулей и единиц
Нужно найти самую длинную непрерывную цепочку нулей в последовательности нулей и единиц. В чем ошибка ? #include &lt;iostream&gt; ...

Найти самую длинную непрерывную цепочку нулей в последовательности нулей и единиц
Требуется найти самую длинную непрерывную цепочку нулей в последовательности нулей и единиц. В единственной строке входного файла записана...

Найти самую длинную непрерывную цепочку нулей в последовательности нулей и единиц
Требуется найти самую длинную непрерывную цепочку нулей в последовательности нулей и единиц. Входные данные В единственной строке...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru