Nechce se mi se probírat těmi vzorečky z arccosiny, ale 1) test pravoúhlosti trojúhelníka je mnohem rychlejší a jednodušší přes pythagorovu větu 2) a hlavně, díky pythagorovce vám pro nagenerování pravoúhlého trojúhelníka stačí nagenerovat 2 strany (odvěsny) a přeponu pak spočítat jako sqrt(a*a+b*b). Mělo by platit, že trojúhelník je jednoznačně zadaný, když máme délky 2 stran a úhel mezi nima (tady π/2). Váš postup má nekonečnou složitost, neboť tím, že třetí stranu máte jednoznačně zadanou, tak se musíte tím náhodným generátorem trefit přímo do ní, což je v podstatě nulová pravděpodobnost (přesněji lim_n->∞ (1 / n)). Druhý problém je v u(0) = PI / 2 - díky zaokrouhlovacím chybám vám toto (prakticky) nikdy nevyjde. V praxi, pokud chci porovnávat 2 reálná čísla x a y, tak dělám něco jako if (Math.Abs(x - y) < δ), kde δ je nějaké malé číslo, dost malé na to, aby neprošly rozdílná čísla, ale dost velké na to, aby se eliminovaly chyby vzniké zaokrouhlením.
|