Portál AbcLinuxu, 24. dubna 2024 05:44

Ach ta matematika

1.12.2005 21:26 | Obecne | poslední úprava: 31.12.2005 14:32

--- censored ---        

Hodnocení: -

zatím nehodnoceno
        špatnédobré        

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

Komentáře

Nástroje: Začni sledovat (1) ?Zašle upozornění na váš email při vložení nového komentáře. , Tisk

Vložit další komentář

1.12.2005 21:37 machr
Rozbalit Rozbalit vše Re: Ach ta matematika
Odpovědět | Sbalit | Link | Blokovat | Admin
Python 2.4.1 (#1, Sep 13 2005, 00:39:20)
[GCC 4.0.2 20050901 (prerelease) (SUSE Linux)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> for a in xrange(20):
...  for b in xrange(20):
...   for c in xrange(20):
...    if(a+b+c == 21 and a*a+b*b+c*c == 189):
...     print a, b, c
...
2 8 11
2 11 8
3 6 12
3 12 6
6 3 12
6 12 3
8 2 11
8 11 2
11 2 8
11 8 2
12 3 6
12 6 3
>>>
eXces avatar 1.12.2005 21:44 eXces | skóre: 15 | blog: i hate mondays;) | Jihlava
Rozbalit Rozbalit vše Re: Ach ta matematika
Uznal bych vám to, ale není to kompletní;)
Only two things are infinite, the universe and human stupidity, and I'm not sure about the former. --Albert Einstein
xxx avatar 1.12.2005 22:29 xxx | skóre: 42 | blog: Na Kafíčko
Rozbalit Rozbalit vše Re: Ach ta matematika
geometricka posloupnost to je takovyto, ze bych mel znat a1 a pak q, kdyz an = a1*q^n a to se tusim da spocitat z tech dvou zadanejch rovnic. A nebo ted uz proje ten vypis toho pythoniho scriptu a vybrat patricne trojice :)
Please rise for the Futurama theme song.
eXces avatar 1.12.2005 22:37 eXces | skóre: 15 | blog: i hate mondays;) | Jihlava
Rozbalit Rozbalit vše Re: Ach ta matematika
pokud se takhle vecer nepletu, tak je to a1*q^(n-1)
Only two things are infinite, the universe and human stupidity, and I'm not sure about the former. --Albert Einstein
xxx avatar 1.12.2005 22:52 xxx | skóre: 42 | blog: Na Kafíčko
Rozbalit Rozbalit vše Re: Ach ta matematika
pravda, taky to byl jen nastin reseni. Ale to ze se to da resit na I me nenapadlo.
Please rise for the Futurama theme song.
1.12.2005 22:42 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ach ta matematika
V oboru celých čísel další řešení nejsou. Ale za ten algoritmus by autor zasloužil za uši…
1.12.2005 22:55 machr
Rozbalit Rozbalit vše Re: Ach ta matematika
a moch bych se zeptat proc ????????????? to je prece krasna ukazka reseni hrubou silou....
1.12.2005 23:00 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ach ta matematika
Kdyby nic jiného, tak ten vnitřní cyklus je úplně zbytečný, protože stačí položit 'c = 21 - a - b' a otestovat druhou rovnici. A omezení číslem 20 je zbytečně nadstřelené, protože z druhé rovnice okamžitě vyplývá, že čtverce těch čísel jsou nejvýše 189, takže to stačí do 13. I při řešení hrubou silou je vhodné se nejdřív zamyslet nad postupem…
1.12.2005 23:06 machr
Rozbalit Rozbalit vše Re: Ach ta matematika
predcasna optimalizace je korenem veskereho zla !!!!

-- nekde v knize Umeni programovani v Unixu
1.12.2005 23:37 matematik
Rozbalit Rozbalit vše Re: Ach ta matematika
Napsal to Donald Knuth v Literate Programming a netýká se to volby idiotských algoritmů, ale předčasné low-level optimalizace. To by to taky jinak mohlo vypadat tak, že bychom v rámci vyhýbání se předčasné optimalizaci před lety do jednoho ze svých prvních programů implementovali bogo-sort a od té doby nic nenaprogramovali, protože bychom stále čekali, až program doběhne... (a nemuseli bychom se dočkat nikdy, protože počet permutací i nevelkých polí je nesrovnatelně větší než počet permutací, které lze vygenerovat běžným generátorem pseudonáhodných čísel).
1.12.2005 23:46 machr
Rozbalit Rozbalit vše Re: Ach ta matematika
OMYL. tyka se to toho, ze bys nemel optimalizovat, dokud nezjistis, ze mas problemy s vykonnosti a to muj algoritmus NEMA. vysledek se vypise okamzite po tom, co to odentruju. pokud by byl priklad jinak a byly tam cisla treba do 2e4, tak uz bych nejaky optimalizace musel delat, ale tady sou NAPROSTO ZBYTECNY a neopodstatneny
1.12.2005 23:55 matematik
Rozbalit Rozbalit vše Re: Ach ta matematika
Člověku, který napíše
i += n;
jako
for (j = 0; j < n; j++)
    i++;
patří ulámat pracky a nic na tom nemění skutečnost, že to program nemusí výrazně zpomalit, protože se to např. nespouští často.

Optimalizovat a používat u psaní programů mozek jsou dvě ne zcela totožné věci. Člověk, který při psaní programů nepoužívá mozek, nepíše dobré programy, i kdyby spával s kompletním The Art of Computer Programming pod hlavou.
2.12.2005 01:01 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ach ta matematika
Tak přesně tohle jsem zrovna nedávno použil. Ale bylo to v programu, který sloužil jako demonstrace toho, že v multithreadové aplikaci je potřeba dávat pozor na kolize při přístupu k proměnným, takže tam to mělo své opodstatnění… :-)
2.12.2005 09:54 barney
Rozbalit Rozbalit vše Re: Ach ta matematika

pre kazdu prasacinu sa najde aplikacia, kde je nasadenie vhodne. suhlasim s tym, ze pouzit tri cykly na riesenie rovnice o troch neznamych je blbost presahujuca blbost priemerneho usera.

2.12.2005 00:52 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ach ta matematika
Proboha, nesnažte se tu botu ještě omlouvat nějakými vznešenými ideály. jestliže použijete kubický algoritmus místo kvadratického, který je navíc jednodušší a přehlednější, tak to rozhodně nemůžete omlouvat principem, který jste si vypůjčil (a překroutil) od sebeváženějšího autora.
2.12.2005 11:16 machr
Rozbalit Rozbalit vše Re: Ach ta matematika
ad 'prehlednejsi a jednodussi' - neni ani nahodou. z myho postupu je naprosto jasne videt, jak to dosazuje do tech rovnic a neni potreba s nima nijak onanovat

ad 'nemuzete omlouvat' - pochopitelne, ze muzu. to je podstata toho pravidla, ze JEDNODUSSI algoritmus OMLOUVA nizsi vykon

ad 'prekroutil' - nic sem neprekroutil - ten citat je doslovne presny (podle ceske verze knihy)
2.12.2005 12:14 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ach ta matematika
Překroutil jste ho tím, že jste se ho pokusil aplikovat na situaci, na kterou se vůbec nevztahoval, a pokusil jste se v něm hledat něco, co v něm není: ospravedlnění neospravedlnitelného. Konkrétně nepoužívání rozumu při programování - jsem přesvědčen, že za takovou věc by vás DEK rozhodně nepochválil, asi by ho nepotěšilo, že si jeho citát vykládáte takto. Howgh.
2.12.2005 12:15 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ach ta matematika
Překroutil jste ho tím, že jste se ho pokusil aplikovat na situaci, na kterou se vůbec nevztahoval, a pokusil jste se v něm hledat něco, co v něm není: ospravedlnění neospravedlnitelného. Konkrétně nepoužívání rozumu při programování - jsem přesvědčen, že za takovou věc by vás DEK rozhodně nepochválil, asi by ho nepotěšilo, že si jeho citát vykládáte takto. Howgh.
2.12.2005 12:17 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ach ta matematika
Mimochodem, děkuji vám za další hezký ilustrační příklad k mému pravidlu o korelaci mezi sebevědomostí nicku a odbornou úrovní přispěvatele… :-)
2.12.2005 14:34 machr
Rozbalit Rozbalit vše Re: Ach ta matematika
rad sem poslouzil, ale zadny korelace netreba pocitat. kdyz ma nekdo sebevedomy nick, tak k tomu ma asi velmi dobry duvod... :-D
2.12.2005 19:04 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ach ta matematika
Jistě. Obvykle se tím pokouší něco zakrýt… :-)
1.12.2005 22:39 #Tom
Rozbalit Rozbalit vše Re: Ach ta matematika
Odpovědět | Sbalit | Link | Blokovat | Admin
Když geometrická posloupnost, tak třeba k q^0, k q^1, k q^2, .... Dohromady to dá tohle:
k   (1 + q   + q^2) = 21
k^2 (1 + q^2 + q^4) = 189
Pěkná soustava rovnic, že?

Pro q vyjde:
4 q^4 - 6 q^3 - 2 q^2 - 6 q + 4 = 0
Vyjde mj. q = 2. Z toho vyjde k = 3 a očekávané výsledky 3, 6, 12. Také vyjde q = 1/2, z čehož máme k = 12. Je vidět, že to dá rovněž 3, 6, 12. Zbylé dva kořeny jsou komplexní, takže by nedaly tak pěkné řešení.
1.12.2005 23:24 matematik
Rozbalit Rozbalit vše Re: Ach ta matematika
Zbylé dva kořeny především splňují 1+q+q^2=0, takže nedají žádné řešení.

Kromě toho je zbytečné tam cpát čísla. Z
k   (1 + q   + q^2) = A
k^2 (1 + q^2 + q^4) = B
dostaneš eliminací k
(B-A^2)q^4 + 2Bq^3 + (3B-A^2)q^2 + 2Bq + (B-A^2) = 0
což je symetrická polynomiální rovnice sudého řádu, takže ji uděláš substituci z=q+1/q, dostaneš
(B-A^2)z^2 + 2Bz + B+A^2 = 0
která je kvadratická a řešíš ji normálně. Vyjde jednak z=-1, to ovšem dává 1+1/q=-1 neboli 1+q+q^2=0, a tedy neodpovídá žádnému řešení původní rovnice. Kromě toho vyjde
z = (A^2 + B)/(A^2 - B)
což dá dvě řešení q: 2 a 1/2 (tady už jsem dosadil čísla, protože se mi nechce psát odmocniny). Z definice z jsou ty dva kořeny převrácené hodnoty a jeden je redundantní, takže vezmeš např. q=2 a dopočítáš zbytek.
1.12.2005 23:25 matematik
Rozbalit Rozbalit vše Re: Ach ta matematika
Ovšem otázka je, zda to, že to je geometrická řada, byla součást zadání, nebo je to diofantovská rovnice, nebo v jakém oboru se to vlastně má řešit.
1.12.2005 23:27 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ach ta matematika
Tak nějak, ze zmateného zadání jsem rozhodně nepochopil, že by a1, a2 a a3 měly být první tři členy nějaké geometrické posloupnosti…
eXces avatar 1.12.2005 23:50 eXces | skóre: 15 | blog: i hate mondays;) | Jihlava
Rozbalit Rozbalit vše Re: Ach ta matematika

Ehm, myslím, že jsem napsal, že se jedná o geometrickou posloupnost, pokud je ovšem nepochopitelné, že a1, a2 a a3 jsou první členy této posloupnosti, pak se omlouvám. Příště to napíši srozumitelněji.

Ale koukám, že se to chytlo, příště vymyslím něco zapeklitějšího;) Konečně bychom místo flameování mohli všichni počítat a psát algoritmy;)

Only two things are infinite, the universe and human stupidity, and I'm not sure about the former. --Albert Einstein
2.12.2005 00:23 matematik
Rozbalit Rozbalit vše Re: Ach ta matematika
I jako diofantovská rovnice bez podmínky geometrické řady je to řešitelné ručně, protože v absolutní hodnotě musejí být ta čísla do 13 a součet i součet kvadrátů musí dát 0 mod 7, čemuž odpovídají jen kombinace zbytků (0,0,0), (1,2,4) a (3,5,6). Jelikož (0,0,0) nikam nevede, a alespoň jedno z čísel tedy musí být v abs. hodnotě do 7 (8^2+9^2+12^2>189) a všechna musejí být nezáporná ((-1)^2+11^2+11^2>189), zbývá asi půl tuctu možností, které se prostě vyzkoušejí, protože už nestojí za to dále to omezovat.

Takže zbývá najít všechna řešení v gaussovských celých číslech, ale na to už je dnes pozdě...
2.12.2005 01:24 Michal Kubeček | skóre: 72 | Luštěnice
Rozbalit Rozbalit vše Re: Ach ta matematika
Jiný postup: hraním si s těmi symetrickými polynomy dojdu k rovnici (x-y)²+(y-z)²+(z-x)²=126. Takže když si ta čísla seřadím podle velikosti a označím p rozdíl mezi prvním a druhým a q rozdíl mezi druhým a třetím, musí platit p²+q²+(p+q)²=126. Odtud snadno 63 <= (p+q)² <=84, takže jako p+q připadá v úvahu jen 8 nebo 9, přičemž osmičku snadno hned vyloučíme a pro devítku vyhovuje jen 6+3. Tím známe rozdíly těch čísel a jejich součet a jsme hotovi. Takže buď p=3,q=6 (což vede na 3,6,9) nebo p=6,q=3 (což vede na 2,8,11).
1.12.2005 23:36 #Tom
Rozbalit Rozbalit vše Re: Ach ta matematika
No matematik moc nejsem, takže jsem dvojku uhodl a polovinu vykoukal z grafu. :-)
2.12.2005 15:33 Dag | skóre: 25 | blog: bzuk
Rozbalit Rozbalit vše Re: Ach ta matematika

Nebo též můžeme rozložit

1+q^2+q^4 = (1+q+q^2)(1-q+q^2)

a dosadit z první rovnice za a1^2 do druhé rovnice. Po jednoduché úpravě dostaneme již výše zmíněnou kvadratickou rovnici

2q^2-5q+2 = 0.

P.S. Já jen zapsal, autor Helena Ř. :)

1.12.2005 22:51 Michal
Rozbalit Rozbalit vše Re: Ach ta matematika
Odpovědět | Sbalit | Link | Blokovat | Admin
1) a1=3 q=2
2) a1=12 q=1/2
1.12.2005 23:03 Dag | skóre: 25 | blog: bzuk
Rozbalit Rozbalit vše Re: Ach ta matematika
Odpovědět | Sbalit | Link | Blokovat | Admin
na prvni pohled pry a1 = 3 a q = 2 :-)
2.12.2005 20:39 Zruda
Rozbalit Rozbalit vše Re: Ach ta matematika
Odpovědět | Sbalit | Link | Blokovat | Admin
Můj postup:

První rovnici umocním: a^2(1+q^2+q^4+2q+2q^2+2q^3) = 189+2*21*aq = 9*21+2*21*aq = 21*21 => aq = 6.

Vau, už vím, kolik je prostřední člen! První rovnici si tedy přepíšu: 6/q+6+6q = 21 => 6+6q^2 = 15q => q1 = 2; q2 = 1/2.

Zmizli mi tam dvě řešení, který jsou ale komplexní.

Založit nové vláknoNahoru

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.