Mikuláš je tu! Získaj 90 % extra kreditov ZADARMO s promo kódom CERTIK90 pri nákupe od 1 199 kreditov. Len do nedele 7. 12. 2025! Zisti viac:
NOVINKA: Najžiadanejšie rekvalifikačné kurzy teraz s 50% zľavou + kurz AI ZADARMO. Nečakaj, táto ponuka dlho nevydrží! Zisti viac:

Diskusia – Najväčší spoločný deliteľ (Euklidov algoritmus)

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Posledné komentáre sú na spodnej časti poslednej stránky.
Avatar
Mircosoft
Tvůrce
Avatar
Mircosoft:13.7.2011 10:42

Mám takový dojem, že Eukleidův algoritmus je tohle:

  1. Pokud A=B, je největší společný dělitel rovný těmto číslům a končíme.
  2. Pokud A<>B, odečti od většího z nich to menší a vrať se na krok 1.
8-)
Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Mircosoft
David Hartinger:13.7.2011 11:11

Nene, Euklidův je určitě tohle.

Odpovedať
New kid back on the block with a R.I.P
Avatar
Mircosoft
Tvůrce
Avatar
Odpovedá na David Hartinger
Mircosoft:13.7.2011 13:08

Tak jsem si to nakonec musel pořádně nastudovat :)
http://en.wikipedia.org/…id_algorithm
Pravdu máme oba, postupným odečítáním menšího čísla vyjde to samé číslo jako při jednom modu. Jediný rozdíl je v rychlosti a použitých instrukcích.

Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na Mircosoft
David Hartinger:13.7.2011 15:04

Článek jsem doplnil, děkujeme za informaci :)

Odpovedať
New kid back on the block with a R.I.P
Avatar
Kamil
Nevyplnené
Avatar
Kamil:13.12.2011 16:17

A co když mám na vstupu dvě záporná čísla?

Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na
David Hartinger:13.12.2011 19:08

Hraje snad znaménko čísla nějakou roli v jeho dělitelnosti? :)

Odpovedať
New kid back on the block with a R.I.P
Avatar
danzurek
Člen
Avatar
danzurek:16.12.2011 8:58

Dobrý den, začínám v C# a mám za úkol určit Nejmenší společný násobek a největší společný dělitel pro více čísel, které zadá uživatel a právě s tím mám problém.

Avatar
David Hartinger
Vlastník
Avatar
Odpovedá na danzurek
David Hartinger:17.12.2011 11:25

Dobrý den,
algoritmus by neměl být problém použít pro více čísel. Např. pro čísla a, b, c, d nejprve vypočítáte v1 = gcd(a,b); v2 = gcd(v1, c); v3 = gcd(v2, d); Poslední výsledek v3 je ten konečný :) Stačí si jen naimplementovat nějaký cyklus nad polem, který vezme vždy gcd z posledního výsledku a dalšího prvku v poli.

Něco jako:

puvodni = pole[0];
for (i = 1; i < pole.length; i++)
{
  puvodni = gcd(puvodni, pole[i]);
}

Pro výpočet nejmenšího společného násobku lze použít opět funkci GCD (největšího společného dělitele):

int lcm(int a, int b) {
  if (a == 0 || b == 0)
    return 0;
  return (a * b) / gcd(a, b);
}
Odpovedať
New kid back on the block with a R.I.P
Avatar
danzurek
Člen
Avatar
Odpovedá na David Hartinger
danzurek:23.12.2011 23:52

Děkuji za odpověď

Avatar
David Kruntorád:2.1.2016 17:17

A jak by to vypadalo v Céčku? :)

Posledné komentáre sú na spodnej časti poslednej stránky.
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zobrazené 10 správy z 11.