PMLeague
https://clubs.pmleague.com/phpBB3/

НОД на повече от две числа
https://clubs.pmleague.com/phpBB3/viewtopic.php?f=102&t=6741
Страница 1 от 1

Автор:  SUBXERO [ 07.01.2016 13:58 ]
Заглавие:  НОД на повече от две числа

Откривам новия подфорум с едно питане от сферата на математиката.

Има ли изобщо някакъв алгоритъм, формула или изобщо нещо подобно за намирането на най-голям общ делител (НОД) на повече от две числа?

Или с други дум, иде реч за екселската функция GCD (Greatest Common Divisor).

Проблемът е, че си говорим за тест без достъп до ексел, т.е. само сметки с лист и химикалка + джобен калкулатор. Освен това числата са между четири- и седемцифрени. :safin: :outofspace: :helpless:

Евклидовият алгоритъм е що-годе ок, но само за две числа. При повече от две числа по принцип могат посредством този алгоритъм да се намерят НОДовете за всяка една двойка числа от групата (примерно за a,b, и c съответно НОД(a,b), НОД(a,c), НОД(b,c)), но оттам нататък (поне аз и поне засега) я карам с хамалогия и стъкмистика.

Някакви познания/идеи/предложения?

Мерси на всички предварително!

Автор:  bai Momchil [ 10.01.2016 14:44 ]
Заглавие:  Re: НОД на повече от две числа

Алгоритми има - примерно алгоритъм на Евклид:

https://bg.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D1%8A%D0%BC_%D0%BD%D0%B0_%D0%95%D0%B2%D0%BA%D0%BB%D0%B8%D0%B4

Универсална формула обаче няма, доколкото съм запознат.

Автор:  SUBXERO [ 10.01.2016 14:52 ]
Заглавие:  Re: НОД на повече от две числа

bai Momchil написа:
Алгоритми има - примерно алгоритъм на Евклид:

https://bg.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D1%8A%D0%BC_%D0%BD%D0%B0_%D0%95%D0%B2%D0%BA%D0%BB%D0%B8%D0%B4

Универсална формула обаче няма, доколкото съм запознат.

Вече споменах, че алгоритъма на Евклид го знам, но той, както и всички останали, е само за две числа. Екселската формула GCD, както всички други формули, трябва да базира на някакъв алгоритъм. Ето този ако мога да намеря...

Автор:  bai Momchil [ 10.01.2016 14:58 ]
Заглавие:  Re: НОД на повече от две числа

SUBXERO написа:
bai Momchil написа:
Алгоритми има - примерно алгоритъм на Евклид:

https://bg.wikipedia.org/wiki/%D0%90%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D1%8A%D0%BC_%D0%BD%D0%B0_%D0%95%D0%B2%D0%BA%D0%BB%D0%B8%D0%B4

Универсална формула обаче няма, доколкото съм запознат.

Вече споменах, че алгоритъма на Евклид го знам, но той, както и всички останали, е само за две числа. Екселската формула GCD, както всички други формули, трябва да базира на някакъв алгоритъм. Ето този ако мога да намеря...


Може пак да използваш Евклид, като започнеш с 2 числа, после намираш НОД на НОД-а от първите 2 с третото и т.н.

Автор:  bai Momchil [ 10.01.2016 15:01 ]
Заглавие:  Re: НОД на повече от две числа

Като гугълнеш малко точно същото казват хората:

The GCD of 3 numbers can be computed as gcd(a, b, c) = gcd(gcd(a, b), c).

:cheers:

Автор:  SUBXERO [ 10.01.2016 15:06 ]
Заглавие:  Re: НОД на повече от две числа

Това ми беше една от идеите по принцип, но ми се стори рискована и я отхвърлих. Ти сигурен ли си в този метод или просто предполагаш?

Другата ми идея я споделих по-горе - да намеря НОДа на всяка една двойка числа и после евентуално техния НОД, което обаче (засега) става с налучкване.

Автор:  SUBXERO [ 10.01.2016 15:08 ]
Заглавие:  Re: НОД на повече от две числа

Ясно, значи е изпитан метод. Много мерси! :cheers:

Автор:  bai Momchil [ 10.01.2016 15:17 ]
Заглавие:  Re: НОД на повече от две числа

SUBXERO написа:
Това ми беше една от идеите по принцип, но ми се стори рискована и я отхвърлих. Ти сигурен ли си в този метод или просто предполагаш?

Другата ми идея я споделих по-горе - да намеря НОДа на всяка една двойка числа и после евентуално техния НОД, което обаче (засега) става с налучкване.


Ако го правиш програмно, слагаш всичките числа в един масив и правиш следното:

nod = number[0];

loop (тук ти е цикъла въртиш го от 1 до дължината на масива) {

nod = gcd(nod, number[i]) - тук gcd ти функцията за НОД по алгоритъма на Евклид

}

и тва трябва да е. Като ти свърши цикъла nod ще ти е резултата.

Автор:  SUBXERO [ 10.01.2016 15:29 ]
Заглавие:  Re: НОД на повече от две числа

Момчи, що не четеш бе, човек? Ставаше дума за тест с лист, химикалка и джобен калкулатор (без функции). Всичко останало е осъществимо.

Мерси все пак за идеите. Може някога някому да потрябват. Затова са тези форуми в крайна сметка.

Автор:  bai Momchil [ 10.01.2016 15:52 ]
Заглавие:  Re: НОД на повече от две числа

SUBXERO написа:
Момчи, що не четеш бе, човек? Ставаше дума за тест с лист, химикалка и джобен калкулатор (без функции). Всичко останало е осъществимо.

Мерси все пак за идеите. Може някога някому да потрябват. Затова са тези форуми в крайна сметка.



Хахахах сори :)

Ама и на лист да е алгоритъма е същият ;)

Страница 1 от 1 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/