1 / 1 / 0
Регистрация: 15.11.2011
Сообщений: 34
|
|||||||||||
1 | |||||||||||
Реализовать код данной функции, но через рекурсию21.04.2013, 22:06. Показов 2180. Ответов 31
Метки нет (Все метки)
Добрый вечер. Прошу помочь реализовать функцию Mult с помощью рекурсии. Там формируется матрица произведений. Вот сделть, чтобы она формировалась рекурсивно. Эта функция находится в function.cpp. Заранее большое спасибо за ответы и советы)
Собственно вот задание Имеется 2*N чисел. Известно, что их можно разбить на пары таким образом, что произведения чисел в пара:х равны. Сделать разбиение, если числа: а) натуральные; б) целые. Решение: В качестве входных данных будет массив, записанный в файл. Количество элементов в нем должно быть четное, для того, чтобы можно было сформировать пары чисел. Задача будет решена путем построения двумерной матрицы (n*n), где n – количество элементов в исходном массиве. Каждый элемент такой матрицы будет содержать произведение элементов из исходного массива, рассматриваемого относительно индексов в двумерном массиве. Например, в двумерной матрице элемент с индексами (1,2) будет являться произведением элементов из исходного массива с индексами (1) и (2) соответственно. Если исходный массив можно разбить на пары чисел с одинаковым произведением между ними, то любая строка двумерной матрицы будет содержать одно повторяющееся значение. Цель программы – построить двумерную матрицу и отыскать такое произведение. Отыскав это произведение, будет несложно построить пары чисел с одинаковым произведением. Замечание: исходные пары будут содержать числа в единственном экземпляре, или другими словами, повторяющиеся пары не будут учитываться. Это будет продемонстрировано в контрольном примере ниже. Программа написана таким образом, что она учитывает сразу 2 варианта задания, когда числа натуральные и когда числа целые. Я не прикрепил файл с входными данными и заголовочный файл. файл Function.cpp
0
|
21.04.2013, 22:06 | |
Ответы с готовыми решениями:
31
Реализовать перебор поддиректорий через рекурсию Реализовать вывод чисел в диапазоне от 10 до 25 через рекурсию Реализовать вывод чисел в диапазоне от 10 до 25 через рекурсию Как реализовать сортировки вставками и выбором через рекурсию? |
1 / 1 / 0
Регистрация: 15.11.2011
Сообщений: 34
|
|
22.04.2013, 13:06 [ТС] | 21 |
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
22.04.2013, 13:23 | 22 | |||||
Ну тогда вот
1
|
1 / 1 / 0
Регистрация: 15.11.2011
Сообщений: 34
|
|||||||||||
22.04.2013, 15:33 [ТС] | 23 | ||||||||||
kravam, Спасибо за код. Я тут пытался скомпилировать с этими исправлениями. Подправил исходный код, удалил лишнее, но в одном месте ошибка. Но я подозреваю, что исправив её, получится ещё море их.
файл: function.cpp
c 90 по 113 строку вставил Ваш кусок в файл Фанкшн с 65 по 69 строку вставил Ваш кусок в файл Майн, ошибка в 69 строке. не определён индификатор пишет. Может из-за области видимости в мейне не передаётся эта функция? Можете дать подсказку, как ввести программу в эксплуатацию?
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
22.04.2013, 17:49 | 24 |
А где файл Function.h?
0
|
1 / 1 / 0
Регистрация: 15.11.2011
Сообщений: 34
|
||||||
22.04.2013, 17:51 [ТС] | 25 | |||||
Я думал не надо. Там ж прототипы только.
файл Function.h
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
22.04.2013, 18:02 | 26 |
0
|
1 / 1 / 0
Регистрация: 15.11.2011
Сообщений: 34
|
|
22.04.2013, 18:14 [ТС] | 27 |
Ой она в другом файле. тогда я в заголовочном её прототип напишу и вызову эту функцию в main.
Добавлено через 2 минуты kravam, вышло. теперь программа согласно коду распечатывает 1. А как теперь сделать вывод пар в новом коде?
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
||||||
22.04.2013, 18:20 | 28 | |||||
Да чёрт его знает, это надо со всем кодом разбираться. А в моём коде вот так:
1
|
1 / 1 / 0
Регистрация: 15.11.2011
Сообщений: 34
|
|
22.04.2013, 18:40 [ТС] | 29 |
kravam, Спасибо большое.
Т.е в ответ на исходные данные (4 6 3 2 1 12), программа выдаёт: 1 //значит, что пары нашлись и 4 -1414812757 6 -33686019 3 12 2 1 4,6,3,2,1,12 это как раз и есть значения, из которых формируется произведение. А два посторонних значения - это издержки?? И т.е надо как-то придумать, как из данных значений составить пары? И ещё, а рекурсивность где конкретно проявляется?
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
22.04.2013, 18:54 | 30 |
Ты на мой код посмотри, у меня массив отсортированный, а
4 6 3 2 1 12 неотсортированный. Отсортируй, вставь в мою программу, измени razmer и всё будет круто. Рекурсивность в том проявляется, что f вызывает сама себя
0
|
1 / 1 / 0
Регистрация: 15.11.2011
Сообщений: 34
|
|
22.04.2013, 19:47 [ТС] | 31 |
Да, точно. Всё получилось так, как и нужно. просто в неотсортированном при операциях этих, видать за диапазон выходили.
Ещё раз большое-пребольшое спасибо! Добавлено через 11 минут А как запустить проверку на то, если пары сформировать не удалось, т.к даже если нет этих пар, они всё равно формируются, но не правильно? Добавлено через 23 минуты Пытаюсь сделать, чтоб для несоставлямой цепочке пары не создавались. Ф-ия bool f в файле Function возвращает в случае успеха (return 1), неуспеха (return 0). И теперь в файле Main создал переменную для записи туда значения, которое возвращает туда эта функция. Так вот как взять это возвращаемое значение?
0
|
быдлокодер
1724 / 911 / 106
Регистрация: 04.06.2008
Сообщений: 5,679
|
|
22.04.2013, 20:47 | 32 |
Да просто много вопросов в одной теме. Я подписывался на рекурсивное нахождение пар, не более.
0
|
22.04.2013, 20:47 | |
22.04.2013, 20:47 | |
Помогаю со студенческими работами здесь
32
Реализовать функцию для подсчёта суммы элементов массива через рекурсию Впервые сталкиваюсь с prolog, пожалуйста реализовать умножение 2 на число, используя сложения, через рекурсию Описание функции через рекурсию Вычисление значение функции через рекурсию Переполнением стека при вычислении функции с через рекурсию! Сделать сумму двух чисел в двоичной системе через рекурсию и функции Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |