|
14 / 14 / 4
Регистрация: 08.10.2009
Сообщений: 114
|
|
Метод определения большего из произведений чисел.23.10.2009, 23:41. Показов 3843. Ответов 23
Метки нет (Все метки)
Привет!
Даны два массива. Размер массивов меньше или равен 10000. В обох массивах записаны числа от 1 до 10. Нужно определить какое произведение больше: произведение чисел первого массива или второго. Напишите, пожалуйста, способ или принцип как это сделать на русском. Заранее благодарен. -------------------------------------------------------------------------------------------------- P.S. Максимальное прозведение можеть быть 10 в 10000-ой степени. Делить после каждого умножение не получится, так как теряется точность.
0
|
|
| 23.10.2009, 23:41 | |
|
Ответы с готовыми решениями:
23
Ошибка 113 в программе определения большего из двух чисел
|
|
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
|
|
| 23.10.2009, 23:47 | |
|
1 Создаем два массива и заполняем их случайными числами от 1 до 10
2 перемножаем элементы каждого массива с помощью, например, цикла for 3 сравниваем полученные значения и выводим ответ, в каком массиве произведение чисел больше.
0
|
|
|
14 / 14 / 4
Регистрация: 08.10.2009
Сообщений: 114
|
|
| 23.10.2009, 23:52 [ТС] | |
|
мне нужно сделать это без использования длинной арифметики.
0
|
|
|
81 / 81 / 6
Регистрация: 14.09.2009
Сообщений: 252
|
|||||||
| 23.10.2009, 23:53 | |||||||
![]() а раз сумма одного ряда, больше суммы другого ряда, то если перемножить элементы рядов, то и произведения будут относится также) для простоты: пусть даны почти равные ряды:
0
|
|||||||
|
14 / 14 / 4
Регистрация: 08.10.2009
Сообщений: 114
|
|
| 24.10.2009, 00:01 [ТС] | |
|
0
|
|
|
14 / 14 / 4
Регистрация: 08.10.2009
Сообщений: 114
|
||
| 24.10.2009, 00:46 [ТС] | ||
1 5 1 - сумма 7; произведение 5 3 1 3 - сумма 7; произведение 9
0
|
||
|
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
|
|
| 24.10.2009, 01:45 | |
|
отсортировать 2 массива (алгоритмом QuickSort) и воспринимать их как 2 числа где элемент массива соотвествующая степень числа, а значение элемента множитель степени какое число больше там и произведение больше
0
|
|
|
6 / 6 / 0
Регистрация: 29.09.2009
Сообщений: 41
|
|
| 24.10.2009, 08:12 | |
|
Используй сокращения.
сортируем массивы и например в 1 мас. пятерок 587, а во втором 466 во втором все заменяем на 1 в первом на 1 заменяем 466 и оставляем 121 также со всеми остальным числами только еще используем разложение на множители. должны остаться только 2,3,5,7
0
|
|
|
14 / 14 / 4
Регистрация: 08.10.2009
Сообщений: 114
|
|||
| 24.10.2009, 13:54 [ТС] | |||
|
Добавлено через 3 минуты
0
|
|||
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
||
| 24.10.2009, 22:23 | ||
В обоих массивах записаны числа от 1 до 10. Разложим все числа на простые множители. 1=1, 2=2, 3=3, 4=2^2, 5=5, 6=2*3, 7=7, 8=2^3, 9=3^2, 10=2*5. То есть каждое число в массиве представимо в виде 2^P0 * 3^P1 * 5^P2 * 7^P3, где P0,P1,P2,P3 - некоторые числа >= 0. Произведение всех чисел массива представимо в таком же виде - считается просто. Пусть произведение первого массива в виде: 2^P0 * 3^P1 * 5^P2 * 7^P3 А второго: 2^Q0 * 3^Q1 * 5^Q2 * 7^Q3 Далее - сокращаем оба произведения. Например P0=10, Q0=25 Значит делим оба числа на 2^10. Получаем что P0=0, Q0=15. Добавлено через 3 минуты В итоге из 8-и чисел P0,P1,P2,P3, Q0,Q1,Q2,Q3 будет максимум 4 числа неравных 0, остальные равны 0. Если все числа равны 0, значит произведения обоих массивов равны. Осталось понять как сравнить два таких произведения ![]() Добавлено через 43 минуты Cравнить можно например с помощью длинной арифметики. Иначе не знаю как. Добавлено через 1 минуту В условии не сказано что нельзя использовать длинную арифметику.
0
|
||
|
447 / 300 / 65
Регистрация: 12.10.2009
Сообщений: 1,162
|
||||||
| 25.10.2009, 03:25 | ||||||
|
ох господи неужели трудно так понять....
есть 2 числа 213 и 124 сортируем цифры чисел в порядке убывания получаем 321 и 421 т. к. 3*2*1<4*2*1 то произведение цифр 1 числа меньше 2 и для того чтобы точно определить какое из произведений больше на просто нужно сравнить значения соотвествующих разрядов преобразованых чисел вот и все на тебе программу на С++ и не мучайся
если есть вопросы стучи в Icq #217030476
0
|
||||||
|
6 / 6 / 0
Регистрация: 29.09.2009
Сообщений: 41
|
|||
| 25.10.2009, 06:36 | |||
|
Какой массив по вашему алгоритму даст большее произведение 223 или 124 еще пример 5533 или 4444 Добавлено через 19 минут После сокращения получаем только множетели 2,3,5,7 приводим все множители к основанию 2 2= 2^1 3= 2^1,5....(надо высчитать и внести как константу) 5= 2^2,2.... 7= 2^2,8.... После сложения степеней легко определить какое число будет больше. Можно и к другому основанию приводить например 2 = 5^0,3.... Есть риск что разница окажется только, например, в 25 знаке после запятой. Но поскольку различаются степени значительно - в 1 знаке после запятой то совпадение пожно считать как ошибки округления и что произведения равны Добавлено через 1 минуту в смысле не совпадение о отклонение в 25 знаке )))
0
|
|||
|
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 22
|
|
| 25.10.2009, 06:57 | |
|
А если сравнить нормы матриц?
0
|
|
|
6 / 6 / 0
Регистрация: 29.09.2009
Сообщений: 41
|
|
| 25.10.2009, 08:04 | |
|
Мое мнение - норма для вектора в данном задании не подойдет
прим для 2 норма - это диагональ а произведение - площадь для 3 мерного вектора норма - диагональ а произведение - объем и т.д. В данном вопросе я могу ошибаться - поправте при необходимости
0
|
|
|
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 22
|
|||
| 25.10.2009, 08:23 | |||
|
три аксомы нормы, разумеется, должны выполняться. однако, офтопик. Для матрицы можно использовать, например максимум по сумме произведений строчных или столбцевых элементов. Думаю, если правильно подобрать норму, задачу можно свести именно к сравнению норм. Однако, идея с разложением чисел на множители и их сортировкой, возможно, более продуктивна.
0
|
|||
|
6 / 6 / 0
Регистрация: 29.09.2009
Сообщений: 41
|
|
| 25.10.2009, 08:45 | |
|
А я демал что еще что-то помню
0
|
|
|
14 / 14 / 4
Регистрация: 08.10.2009
Сообщений: 114
|
|
| 27.10.2009, 01:44 [ТС] | |
|
Народ проблема остается !
Помогите , как решить задачу без использования длинной арифметики ?
0
|
|
|
0 / 0 / 0
Регистрация: 25.10.2009
Сообщений: 22
|
||
| 27.10.2009, 03:17 | ||
|
Это самая разумная идея из всех перечисленных. Из первого массива с числами от 1 до 10 создаём другой, который содержит лишь разложение на степени простых чисел. То есть, например, если видим в первом массиве 1, то ничего не делаем, видим 2 - записываем в новый массив 2, видим 4 - записываем в новый массив два элемента 2, видим 9 пишем "3, 3". (Удобно использовать std::vector<int>). Таким же образом создаём второй "новый массив". Сортируем. Считаем одинаковые элементы. Получаем четыре числа p0 - степени двойки p1 - степени тройки p2 - степени пятерки p3 - степени семёрки Далее, получается нужно сравнить два произведения вида: 2^(p01) * 3^(p11) * 5^(p21) * 7^(p31) и 2^(p02) * 3^(p12) * 5^(p22) * 7^(p32) То есть задача сводится к отысканию знака разности этих произведений. Среди степеней одинаковых оснований ищем минимальну., выносим её как общий множитель разности. То есть: 2^(min(p01;p02) * (2^( max(p01;p02)-min(p01;p02)) - 1) * .... Остаётся сократить на множитель 2^(min(p01;p02))*3^(min(p11;p12))*.... так как он заведомо не равен нулю, и определить знак оставшегося произведения (думаю, INT64 для такого произведения хватит). Знак больше - следовательно, первый массив больше второго в смысле произведения всех элементов. Не могу гарантировать, что идея будет иметь место. Пробуйте. =). Кстати, я бы всё таки не оставлял идею о нормах. Из вектора делаем матрицу(как можно более квадратную) и работаем уже с ней. Можно, например, придумать матричный оператор, по энергетической норме которого и сравнивать матрицы. С мат. основанием этой идеи сложнее, зато экзамен автоматом Вам в случае успеха поставят 100% =)
0
|
||
|
7176 / 3234 / 82
Регистрация: 17.06.2009
Сообщений: 14,164
|
||
| 27.10.2009, 22:41 | ||
Берем 2^10000 один массив и 3^10000 другой массив. Нужно вычислить число 2^10000-3^10000. В данном случае результат ясен. Но вот например 2^330 и 3^200 сразу не скажешь.
0
|
||
|
133 / 132 / 29
Регистрация: 04.01.2009
Сообщений: 415
|
||||||||||||||||
| 28.10.2009, 00:46 | ||||||||||||||||
|
Предлагаю следующий вариант!
Все числа массива заменить следующим образом:
Таким образом, большим произведением будет то число, у которого большая степень, а сравнить степени труда не составит!!! Например, два массива: 5533 и 4444, как упоминалось ранее будут иметь вид:
Еще один плюс в данном алгоритме! Чем выше основание логарифма, тем меньше степень числа, т.е. по основанию 10 имеем следующее:
0
|
||||||||||||||||
| 28.10.2009, 00:46 | |
|
Помогаю со студенческими работами здесь
20
Составить программу поиска большего из четырех чисел с использованием подпрограммы поиска большего из двух Составить программу поиска большего из четырех чисел с использованием подпрограммы поиска большего из двух
Метод внешних произведений(метод Холецкого) Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|