Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Новые рефераты » Російське народне множення

Реферат Російське народне множення





до C, починаючи з i-ій позиції. Якщо вийшла цифра C більше Base - зробити перенос.

). Якщо A не скінчилася, збільшити i на одиницю і йти на крок 3.


5.3 Розподіл


Нехай дільник - звичайне число базового типу. У цьому випадку поділ виконується дуже просто: проходимо по цифрах діленого, починаючи зі старшого розряду по напрямку до молодшого. Для кожної пройденої цифри виробляємо наступні дії: розділити її на B, ціла частина результату додається в кінець загального приватного, залишок переноситься і бере участь в обробці наступній цифри, і т.д. Останній перенесений залишок є залишком від усього поділу.

Розглянемо дії, що здійснюються при діленні A=68971 на B=513 (малюнок 1.5.1). Тут n=5, m=2.


Малюнок 1.5.1 Приклад ділення довгих чисел (горизонтальні лінії проводяться між кроками)


. i=(індекс старшого коефіцієнта A)=4

1.1 «Вгадуємо» q [0]=1.

1.2 Віднімаємо зрушене B * 1=513 з A (на папері при цьому пишемо  тільки значиму для наступного кроку частина A)

2. i=3.

.1 «Вгадуємо» q [1]=3.

2.2 Віднімаємо зрушене B * 3=1539 з A.

3. i=2.

.1 «Вгадуємо» q [3]=4.

.2 Віднімаємо зрушене B * 4=2052 з A.

4. i < m=2, процес закінчений. Те, що залишилося від A після вирахувань, є залишком поділу.

Все очевидно, за винятком одного «творчого» кроку - «вгадування». Як змусити комп'ютер генерувати правильне приватна q? Або хоча б достатньо близьке до нього число?

Нехай черговий крок являє собою поділ деякого U=(u 0, u 1, ..., un) на B=(b 0, b 1, ..., bn - 1). Якщо bn - 1? Base / 2, то можна довести такі факти.

. Якщо покласти qGuess=(un * Base + un - 1) / bn - 1, то qGuess - 2? q? qGuess. Інакше кажучи, обчислена таким способом «здогадка» буде не менше шуканого приватного, але може бути більше на 1 або 2.

. Якщо ж додатково виконується нерівність qGuess * bn - 2> Base * r + un - 2, де r - залишок при знаходженні qGuess і qGuess? Base (умова 2), то qGuess - 1? q? qGuess, причому ймовірність події qGuess=q +1 приблизно дорівнює 2/Base.

Таким чином, якщо bn - 1? Base / 2, то можна обчислити qGuess=(un * Base + un - 1) / bn - 1 і зменшувати на одиницю до тих пір, поки не стануть виконуватися умови (2). Вийшло значення буде або правильним приватним q, або, з ймовірністю 2/Base, на одиницю більшим числом.


6. Проблеми в ході виконання курсової роботи


У ході виконання практичної частини моєї курсової роботи виникло декілька проблем

перше, мені хотілося поліпшити швидкодію своєї програми. А оскільки використовуються, зокрема, дуже великі числа, то цей фактор дуже важливий.

Спочатку результати ділення і множення чисел на 2 відразу записувалися в listbox (в процесі підрахунку) і після кожної наступної операції дописувалися туди через що множення довгих чисел відбувалося значно довше через те, що виведення інформації на екран займає відносно багато часу (йдеться про частки секунд і навіть м...


Назад | сторінка 6 з 7 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Base and Superstructure
  • Реферат на тему: Основні системи побудови мережі 10 Base T
  • Реферат на тему: Розробка проекту локальної обчислювальної мережі на основі технології 1000 ...
  • Реферат на тему: Алгоритм Виконання Операції множення чисел в прямому коді
  • Реферат на тему: Розробка обчислювального пристрою для виконання операції множення двійкових ...