Арифметические задачи
Числа, обладающие свойством самовоспроизводимости при выполнении некоторых действий над ними. Основные идеи алгоритма. "Составные части" программы. Формула вычисления автоморфного числа. Цикл перебора чисел. Вывод автоморфного числа и его квадрата.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | лабораторная работа |
Язык | русский |
Дата добавления | 19.12.2015 |
Размер файла | 13,1 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСТИЕТ
Лабораторная работа №3
по дисциплине «Информатика»
Арифметические задачи
Группа: АВТ-209
Студенты: Артамонова А.В., Блинова Н.С.
Преподаватель: Романов Е.Л.
НОВОСИБИРСК 2012
Задание
Числа, обладающие свойством самовоспроизводимости при выполнении некоторых действий над ними, называют автоморфами. Например, 93762=87909376, четыре последние цифры квадрата совпадают с исходным числом. Найдите все n-значные числа x, удовлетворяющие уравнению
x2 mod 10n =x в диапазоне от 1000000 до 10000000.
Теоретические сведения
Автоморфным числом называется такое число, десятичная запись квадрата которого оканчивается цифрами самого этого числа.
По определению, число v называют автоморфным, если его квадрат оканчивается цифрами самого числа v. Записать это на языке математики можно так: 10n|(v2?v), то есть число 10n является делителем (v2?v). Или так: v2 = v (mod 10n), то есть остаток от деления v2 на 10n равен v, где n -- количество цифр в числе v. Для удобства будем считать, что запись v mod a означает остаток от деления v на a. Тогда определение будет выглядеть так: v2 mod 10n = v.
Триморфным числом называется число, десятичная запись куба которого оканчивается цифрами самого этого числа.
Проектирование программы
Обсуждение основных идей алгоритма
Для нахождения автоморфных чисел, нужно проверить все числа, удовлетворяющие уравнению v2 mod 10n=v в диапазоне от 1000000 до 10000000.
«Составные части» программы
Цикл перебора чисел для нахождения автоморфного числа
for(v=a/10;v<a;v++){ //последовательный перебор чисел в диапазоне от 1000000 до 10000000
if((v*v)%a==v) {//поиск автоморфных чисел
A[i]=v; //сохранение в массиве
i++;}}//счетчик количества чисел в массив
Формула вычисления автоморфного числа
(v*v)%a==v) // при а=10n
Вывод автоморфного числа и его квадрата
for (int j=0;j<i;j++) cout << A[j] << " " << A[j]*A[j] <<"\n";
Переменные
i - счётчик количества чисел в массиве;
a-вспомогательная переменная (определяет диапазон);
A[100]-массив для найденных автоморфных чисел;
n - переменная, определяющая количество разрядов в числе;
v - проверяемое число.
Текст программы с комментариями
автоморфный число квадрат алгоритм
#include <iostream>
#include <math.h>
using namespace std;
void main() {
int i=0,n;
n=6;
_int64 v,A[100];//увеличение разрядности до 64
int a;
a=pow(10.,n);//возведение 10 в степень n
for(v=a/10;v<a;v++){//последовательный перебор чисел в диапазоне от 1000000 до 10000000
if((v*v)%a==v) {//поиск автоморфных чисел
A[i]=v;//запись автоморфного числа в массив
i++;}}//счетчик количества чисел в массиве
for (int j=0;j<i;j++) cout << A[j] << " " << A[j]*A[j]<<"\n";
getchar();}
Пример работы программы
109376 11963109376
890625 793212890625
Ошибки и неточности
Выводы
Если не использовать увеличение разрядности, то программа при выборе числа с большим разрядом будет выдавать неточный результат, т.к. при выходе квадрата числа за границы разрядной сетки, результат будет неверный.
При решении данной задачи мы определили, что среди пятизначных чисел существует два автоморфных числа: 109376, 890625.
Также для проверки данной программы мы нашли все триморфные числа из пятизначных чисел:
18751, 31249, 40625, 49999, 50001, 59375, 68751, 81249, 90624, 90625, 99999 .
Размещено на Allbest.ru
...Подобные документы
Выбор структуры класса больших целых чисел, их сравнительная характеристика и описание преимуществ, недостатков. Реализация метода перемножения двух больших чисел, возведения числа в степень и взятия факториала числа. Режим вычисления выражений.
курсовая работа [827,2 K], добавлен 19.04.2011Запись прямого и обратного кода для числа 10010 и -10010. Получение дополнительного кода числа для 16-разрядной ячейки. Перевод в двоичную систему счисления десятичных чисел: 10, 45, 7, 33. Запись в обратном и дополнительном кодах числа -67, -43, -89.
практическая работа [13,7 K], добавлен 19.04.2011Практическое решение технических задач и логического проектирования узлов ЭВМ: операция деления целых чисел в формате "Упакованное десятичное" на сумматоре прямого кода: блок-схемы алгоритма программы и её код. Понятие об инвертировании числа и кода.
курсовая работа [479,0 K], добавлен 24.06.2012Заполнение массива из целых чисел с присвоением элементам разных значений. Варианты программы с использованием различных операторов организации циклов. Определение квадрата максимального из четных элементов массива и общего числа нулевых элементов.
лабораторная работа [259,3 K], добавлен 14.05.2011Составление программы сортировки по возрастанию массив из 20 шестнадцатеричных чисел, просматривающей все исходные числа во внешней памяти и выбирающей самое большое число. Блок-схема алгоритма работы программы. Таблица команд и число их выполнения.
курсовая работа [23,1 K], добавлен 24.05.2015Преобразование чисел из естественной формы в нормализованную. Алгоритм нормализации числа. Способы кодирования чисел и действия над ними. Особенности прямого, дополнительного, смещенного и обратного кода. Понятие вещественных чисел, их представление.
презентация [42,6 K], добавлен 14.06.2011Принцип работы алгоритма бинарного поиска в массиве. Способы исследования алгоритма "прямое включение". Формулы зависимости числа сравнений от элементов в массиве. Графики среднего числа сравнений и перемещений практических и теоретических измерений.
курсовая работа [646,1 K], добавлен 07.01.2014Актуальность и предыстория проблемы построения систем связи с открытым ключом. Алгоритм кодирования, перевода из десятичного числа в двоичное, быстрого возведения числа в степень, поиска взаимно простых чисел. Дешифрование сообщения по криптоалгоритму.
курсовая работа [140,3 K], добавлен 20.06.2017Характеристика вероятностного алгоритма и особенности его использования. Принцип работы и назначение генератора случайных чисел, сущность псевдослучайных чисел. Рассмотрение и реализация метода середины квадрата, разработка алгоритма и его кодирование.
курсовая работа [50,3 K], добавлен 18.09.2009Предназначение цикла for - оформление циклов (набора действий) с заданным количеством повторений. Пример программы, выводящей на экран все целые числа от 0 до 99. Решение задачи с помощью двух алгоритмов, используя известные функции ввода-вывода.
лабораторная работа [35,1 K], добавлен 15.07.2009Описание логической структуры программы "perevod" для перевода числа из одной системы счисления в другую. Блок-схема алгоритма обработчика события Button1Click. Разработка и испытание приложений. Назначение и условия применения программы, листинг.
курсовая работа [945,5 K], добавлен 03.01.2011Разработка программы, которая создает в отдельном потоке случайный массив целых чисел в заданном диапазоне и выводит на экран эти числа. Описание общего алгоритма, интерфейс программы. Методы решения и алгоритмы задач, реализуемых каждым потоком.
курсовая работа [372,6 K], добавлен 17.04.2014Математическое обоснование метода решения задачи: определенный интеграл, квадратурная формула Симпсона (формула парабол). Словесное описание алгоритма и составление его блок-схемы. Выбор языка программирования. Текст программы решения задачи, ее листинг.
курсовая работа [593,6 K], добавлен 09.07.2012Типы численных данных с фиксированной точкой и основные операции обращения с ними. Целые двоичные числа: классификация, особенности, основные понятия. Наработка практических навыков обращения с целыми числами на компьютере (запись, считывание, хранение).
контрольная работа [24,8 K], добавлен 12.03.2011Описание подпрограммы SumDigit, находящей сумму цифр S целого числа N. Нахождение суммы цифр данных чисел, используя эту подпрограмму. Алгоритм и код программы, тестовые наборы. Вывод о ее работоспособности. Описание функции RingS вещественного типа.
лабораторная работа [514,5 K], добавлен 23.11.2014Система счисления и перевод числа из одной системы в другую. Машинное предоставление информации. Числа с фиксированной точкой: прямой, обратный (инверсный) или дополнительный код. Программная реализация алгоритма и описание использованных процедур.
курсовая работа [96,7 K], добавлен 20.11.2010Рассмотрение категорий работников. Разработка алгоритма и программы вычисления общего числа уволившихся работников каждой категории за весь период учета. Составление электронной таблицы. Описание условий выполнения программы, сообщений пользователю.
курсовая работа [4,6 M], добавлен 26.06.2015Способы сортировки задач программирования: пузырьком, пузырьковая с просеиванием, метод последовательного поиска минимумов, вставками. Распределяющая сортировка - RadixSort-цифровая - поразрядная. Теория чисел. Простые числа. Задача "Красивые числа".
реферат [90,5 K], добавлен 14.05.2008Блок-схема основной программы. Линейная и графическая схемы основной программы. Линейная и графическая схемы процедуры вычитания. Реализация ввода с клавиатуры числа, длиной не более 128 символов. Размещение числа в выделенной оперативной памяти.
контрольная работа [73,4 K], добавлен 08.07.2012Сравнение методов деления отрезка пополам, хорд, касательных и итераций, поочередно используя их для решения одного и того же уравнения. Построение диаграммы и графика изменения числа. Исследование алгоритма работы программы, перечня идентификаторов.
курсовая работа [1,3 M], добавлен 06.08.2013