Курсовая

Курсовая на тему Планирование работ в вычислительных системах по критерию минимального суммарного времени выполнения

Работа добавлена на сайт bukvasha.net: 2015-06-30

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 21.4.2025


БЕЛОРУССКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ ИНФОРМАТИКИ И РАДИОЭЛЕКТРОНИКИ

Кафедра информатики

Пояснительная записка к курсовому проекту

по курсу

«Архитектура вычислительных систем»

на тему

«Планирование работ в вычислительных системах по критерию минимального суммарного времени выполнения работ»

МИНСК, 2001

Постановка задачи

Факторизовать целое число N с помощью ро-метода Полларда.

Исходные данные:

Целое число N.

Краткое описание ро-метода Полларда

Ро-метод Полларда для факторизации заключается в следующем:

  1. Составляется последовательность {x}, xi+1=f(xi), f(x)=x2+1

  2. Вычисляются разности yi= x2i- xi

  3. Вычисляется наибольший общий делитель чисел yi и N. Если он больше 1, полученный НОД (yi , N) является делителем числа N. Если нет – продолжаем выполнение алгоритма сначала.

Алгоритм работы программы

- Ввод числа N.

- Пока N не равно 1:

  1. Вычисление xi

  2. Вычисление x2i

  1. Нахождение разности yi= x2i- xi

  1. Вычисление НОД (yi , N)

  2. Проверка НОД (yi , N) на равенство 1. Если это условие выполняется, то НОД – один из делителей числа N. Делим N на НОД и переходим к началу цикла.

Выход из цикла – равенство числа N единице.

Листинг программы

#include "stdio.h"

#include "conio.h"

#include "iostream.h"

unsigned long NOD(unsigned long a, unsigned long b)

{

while ((a > 0) && (b > 0))

if (a > b) a %= b;

else b %= a;

if (a == 0) return b;

return a;

}

void main()

{

unsigned long N, y, x, x1, i, j, d;

clrscr();

printf("Введите N : ");

scanf("%ld", &N);

i = 1;

x = 0;

do {

x = (x*x + 1) % N;

x1 = x;

for (j = 0; j < i*2-i; j++)

x1 = (x1*x1 + 1) % N;

i++;

y = x1 - x;

d = NOD(y, N);

if (d != 1)

{

cout<<"Делитель : "<<d<<" ";

cout<<"Кол-во шагов : "<<i-1<<endl;

N/=d;

i = 1;

x = 0;

}

}

while (N != 1);

getch();

}


1. Сочинение Что дало мне изучение басни в школе
2. Реферат Анализ рентабельности с помощью программы Олимп
3. Реферат Политические партии Украины ПолЁтичнЁ партЁї на УкраїнЁ
4. Реферат Циклопарафины Состав строение изомерия
5. Курсовая Основы деятельности системы органов государственной власти
6. Контрольная работа на тему Финансовый контроль 13
7. Сочинение на тему В городе Калинове
8. Реферат Грошово-кредитна система Великобританії
9. Презентация Древний Египет 2 Рассмотрение истории
10. Контрольная работа Сравнительная характеристика крупы из овса и ячменя по способам производства, химическому состав