Matematické olympiády s MATLABem k smíchu???

Matematické olympiády s MATLABem k smíchu???

Nevím čím to, ale čas od času se na mne někdo obrátí s řešením matematického problému. Sám si nejsem vědom toho, že bych v ní byl až tak dobrý, nikdo mi to nedal najevo, ale "zakázky" tady stejně jsou. Jednou je to bratr, jednou je Hana a zrovna dneska to byla jedna má nově nabytá známá. Požádala mne, jestli bych ji nevyřešil příklad (viz níže) z matematické olympiády. A jelikož jsem dobrák od kosti, nedokážu říci ne, tak jsem kývl.

Okamžitě jsem věděl, že mám menší problém a že bude problém se spaním. Jsem totiž človíček, který nedokáže odejít od problému, aniž by ho vyřešil, spánek nespánek, jídlo nejídlo. Naštěstí s přibývajícím věkem (a "zakázkami") se mi to už rozleželo v hlavě a vím, že to někdy nemá smysl. A také vím, že pokud nevidím řešení, tak se dívám špatně. Pak je třeba změnit úhel pohledu a být nad věci. Tak to by na úvod stačilo, nyní k příkladu… J

Zadání:

Slovně: Které jsou hodnoty kladných součinitelů a, b v rovnici … tohle by mělo googlu stačit. J

Řešení:

První co mne napadlo, bylo samozřejmě tzn. BFA řešení (Brutal Force Attack řešení, někdy také BFS Brutal Force Solution). Napsal jsem tento jednoduchý algoritmus, který zadaný problém vyřeší. Může se jemně modifikovat s cílem řešit obdobnou úlohu.

Algoritmus BFS:
%############################autor###################################

%#######################Radek Zahradnik##############################

%Zadani:

%Najdete kladne koeficienty a, b v rovnici a*x+b*y=620 s tim

%ze vime, ze rovnice ma 10 reseni a soucet hodnot reseni X

%je roven 455 a soucet reseni Y je rovno 335.

for a=1:10

for b=1:10

soucetX=0;

soucetY=0;

for x=1:619

for y=1:619

m=a*x+b*y;

if m==620

soucetX=soucetX+x;

soucetY=soucetY+y;

if soucetX==455

if soucetY==335

n=[a,x,b,y];

%disp(n);

%disp(soucetX);

%disp(soucetY);

end

end

end

end

end

end

end

disp(‚Hledane koeficienty jsou: ‚);

disp(‚Koeficient a je roven: ‚);

disp(n(1));

disp(‚Koeficient b je roven: ‚);

disp(n(3));

a=n(1);

b=n(3);

disp(‚Hledane rovnice jsou: ‚);

for x=1:n(2)

for y=1:619

m=a*x+b*y;

if m==620

soucetX=soucetX+x;

soucetY=soucetY+y;

n=[a,x,b,y];

disp(n);

end

end

end

_____________________________________________________________________

Pokud byste tento kód vložili do MATLABu/nebo GNU Octave (popř. modifikovali syntaxi pro libovolný software, který podporuje větvení) dostanete tento výsledek:

Hledane koeficienty jsou:

Koeficient a je roven:

7

Koeficient b je roven:

9

Hledane rovnice jsou:

7 5 9 65

7 14 9 58

7 23 9 51

7 32 9 44

7 41 9 37

7 50 9 30

7 59 9 23

7 68 9 16

7 77 9 9

7 86 9 2

____________________________________________________________________

Vidíte, že útok brutální silou není nic jiného, než pokus metoda omyl, kterou si ve skutečnosti nemůžete dovolit kvůli časové náročnosti. Pro počítač, který je schopen vypočítat 3 miliardy operací za vteřinu to však není problém, zde je problém mu zadané řešení přeložit tak, aby tomu rozuměl. J

Analytické řešení:

K samotnému analytickému řešení nepotřebujeme moc, stačí vědět, jak rychle vypočítat součet po sobě jdoucích čísel, třeba 1 do 10, IQ tak 120, tužku papír a možná kalkulačku. 😉 Jelikož nejsem technicky na blogu zařízen na to, abych zde jaksi publikoval rovnice, takže zde je print z pdf, ve kterém je řešení obsaženo.

 

 

Na Skydrive najdete příslušný docx, pdf a M-file k dané úloze. Čili ZDE

PS: Ne nadarmo se říká, že strojní inženýři jsou Ti nejchytřejší inženýři, takže pokud máte nějaký problém a to nejen matematický, obraťte se na svého nejbližšího strojního inženýra. 😉

 

Věnováno Markétě

Advertisements

KUTlime se představuje:

Jsem snílek, chorobný workoholik, detailista, flákač, publicista, hráč, buřič, závislák na produktivismu, technologiích a návratu zpět na strom. Extrovertní samotář, cholerik, kterému pořád v testech vychází sangvinik. Bývalý fotograf, budoucí cestovatel, současný amatérský terapeut. Věčný geek a kritik, nerozpoznatelný bodybuilder a mnoho dalšího. Kontroverze a renesance sama Mám mozek a nebojím se ho používat. Mám mnoho vlastností, které mne činí na první i druhý pohled nesnesitelným člověkem, za to ceněným spolupracovníkem. Seznámení se mnou pouze na vlastní nebezpečí. 8-)
Příspěvek byl publikován v rubrice Každodenní život. Můžete si uložit jeho odkaz mezi své oblíbené záložky.

Zanechat Odpověď

Vyplňte detaily níže nebo klikněte na ikonu pro přihlášení:

WordPress.com Logo

Komentujete pomocí vašeho WordPress.com účtu. Odhlásit / Změnit )

Twitter picture

Komentujete pomocí vašeho Twitter účtu. Odhlásit / Změnit )

Facebook photo

Komentujete pomocí vašeho Facebook účtu. Odhlásit / Změnit )

Google+ photo

Komentujete pomocí vašeho Google+ účtu. Odhlásit / Změnit )

Připojování k %s