OT: Vypocet hodnoty sinus, kdyz neznam pi

Jde mi o to vymyslet nejaky algoritmus.

Ukol: Spocitat sinus (pocet_stupnu)

Problem je v tom, ze funkce sinus bere parametr jen v radianech.
Pritom nesmim pouzit prepocet mezi stupni a radiany.

A nebo kdybyste vedeli jak v Perlu prepnout funkci sin(), aby nepocitala s radiany ale se stupni...

Jsem zvedav jestli na to nekdo prijde:)
"přepnout" goniometrické funkce aby počítaly se stupni nejde snad v žádném programovacím jazyku.
Zajímalo by mě proč nemůžeš provést převod.
Jinak mě teď napadá jedno řešení - napsat si vlastní funkci sin (třeba s názvem sindeg).
Musíš si sinus vypsat Taylerovým rozvojem (nebo jak se tenhle chlap jmenoval, teď si nejsem jistý). To bude součet nekonečně mnoha zlomků s různými faktoriály a mocninami (pro určitou přesnost stačí brát prvních několik zlomků). No a pokud si ten rozvoj správě upravíš, bude to počítat i se stupni ;-)
Tom: hej, taylorom to ide, ale bude to asi velmi vypoctovo narocne. takisto tam musis ratat s chybou (R vo vzorci rozvoja). myslim, ze takto sa to rata aj v samotnej fcii sin() ale je to asi nejako optimalizovane...

Hihik:
skus xrad = (xdeg*Pi)/180,
teda volaj sin((x*Pi)/180)
to by malo previest stupne na radiany.
pinkynew > ano, i počítač počítá sin pomocí rozvoje.

A k tomu kódu cos napsal > to mě samozřejmě napadlo taky, jenže on si tam Hihik dal takovou super logickou poznámku, že cituji:
"Pritom nesmim pouzit prepocet mezi stupni a radiany."
A to cos napsal převod je.
Jenže i pomocí toho rozvoje by se do těch zlomků muselo vpašovat PI a 180.

Prostě bez převodu to nejde. A znovu opakuji, že nechápu zadání, proč nemůžeš použít převod?

Výraz sin(a*x) nejde nijak upravit (pokud a není 2 ani 0.5 což v tomto případě není).
Taylorovi jsem se chtel vyhnout:/

Proc ne prevod? Protoze se snazim napsat neco co prave pi spocita podle obvodu uhelniku, tedy zpusobem 4*n*sin(45/n) < pi < 4*n*tan(45/n), kde cim vetsi n tim vetsi presnost a v pripade prepoctu by to byl dukaz kruhem (pri vypoctu pi bych pouzil pi)
A proč teda chceš používat stupně?
Marek: To jsem se prave snazil vysvetlit. Kdyz chci treba ziskat pi podle vepsaneho pravidelneho 4uhelnika do kruznice, je jeho obvod 8*r*sin(45). Ta hodnota by se mela ze zdola blizit pi. A kdyz chci vyraz 8*r*sin(45) spocitat, musim pocitat se stupni. To proto ze pi neznam, takze nemuzu provest prepocet na radiany.
>Ta hodnota by se mela ze zdola blizit pi
uz kecam blbosti, blizi se hodnote 2*pi*r - tedy obvodu te kruznice
Výraz 8*r*sin(45) je totéž, co odmocnina_ze_dvou*4*r, protože sin(45) je tabulková hodnota = odmocnina_ze_dvou / 2

Pro větší přesnost už je třeba použít goniometrických rovnic a vzorců. Zeptám se - znáš sinus a cosinus polovičního argumentu?

abs(sin(a/2)) = odmocnina((1-cos(a))/2)

abs(cos(a/2)) = odmocnina((1+cos(a))/2)

Potíž je v tom, že s těmito vzorci vystačíš pouze pokud je n (přesnost) celočíselnou mocninou dvojky. Jinak určitě víš, že

sin(a)/cos(a) = tan(a)

a že sin(45) = cos(45) = odmocnina(2)/2

Mohlo by ti to stačit, ne?
tak se mi to castecne povedlo rekurzivnim volanim abs(cos(a/2)) = odmocnina((1+cos(a))/2)

diky za rady