русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


Void main()


Дата додавання: 2014-11-28; переглядів: 842.


{ ulong M,N,v,k,m;

printf("N = "); scanf("%lu",&N);

M = (N<=200 ? 1.6*N/log(N)+1 : N/(log(N)-2)+1);

printf("M = %lu \n", M);

ulong* x = new ulong[M];

x[0]=1; x[1]=2; x[2]=3; m=3; v=5;

while (v<=N) { for (k=2;k<m;k++) if (v%x[k]==0) break;

if (k==m) x[m++]=v;

v+=2;

}

printf("m = %lu \n", m);

for (k=0;k<m;k++) printf("%6lu",x[k]); puts("");

delete[] x;

}

 

Генерація підмножин

 

Задача

Задано пару додатних цілих чисел n,r, причому r £ n. Потрібно вивести на екран всі r-елементні підмножини із множини чисел, що належать відрізку [0, n-1].

Алгоритм

Для збереження елементів поточної підмножини будемо застосовувати r-елементний масив A[0], A[1], ... , A[r-1]. Елементи поточної підмножини будемо подавати у монотонно зростаючому порядку. Не дуже важко зрозуміти, що у такому разі елемент робочого масиву A[k] не може отримати значення більше, ніж n-r+k . Алгоритм побудуємо наступним чином.

 

1. Нехай k = r-1.

2. Збільшуємо A[k] на одиницю.

Якщо A[k] £ n-r+k , виконуємо присвоєння A[i+1]=A[i]+1 для всіх i від k+1 до r-2 , тобто до кінця масиву А. Масив А буде вміщувати чергову шукану підмножину. Вивести її на екран. Перейти до п.1.

Якщо ні, то зменшити k на одиницю.

Якщо k<0 , то завершити процес.

Якщо ні, то перейти до п.2.

 

Програмна реалізація наведеного алгоритму для довільних n,r наведена нижче. Для збереження поточної підмножини A застосовується динамічний масив.

 

// Приклад 1

#include <syst.h>


<== попередня лекція | наступна лекція ==>
Пошук простих чисел. Решето Ератосфена | Сортування масивів


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн