Pagini: [1]   În jos
  Imprimă  
Ajutor Subiect: 162 Pyramids  (Citit de 11649 ori)
0 Utilizatori şi 1 Vizitator pe acest subiect.
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« : Septembrie 17, 2007, 00:28:19 »

http://acm.sgu.ru/problem.php?contest=0&problem=162

Voi cum ati facut cu erorile de precizie?

Nu ma descurc deloc din punctul asta de vedere pe SGU. Nu e singura problema de geometrie unde iau WA Sad.

Eu fac asa:
1. Calculez:
Aria unui triunghi cu Heron.
Inaltimea unui triunghi = 2*Aria/baza.
2. Aflu S = Aria bazei, apoi aflu HB = inaltimea in triunghiul pe care il consider baza piramidei pe una din laturi (sa o notam cu A), apoi HL = inaltimea din varf pe fata laterala care contine pe A, H = inaltimea in triunghiul determinat de HB, HL si latura care i se opune lui A.
3. Afisez S*H/3.

Interesant e ca daca variez varful sau latura A, primesc rezultate diferite de la a 3a zecimala (chiar si pe long double).
« Ultima modificare: Septembrie 17, 2007, 00:31:32 de către Andrei Grigorean » Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
domino
Echipa infoarena
Nu mai tace
*****

Karma: 281
Deconectat Deconectat

Mesaje: 1.340



Vezi Profilul WWW
« Răspunde #1 : Septembrie 17, 2007, 04:04:14 »

In primul rand nu mai calcula ariile triunghiurilor cu Heron.. e cea mai proasta metoda din punct de vedere  al preciziei.

Cea mai simpla metoda e cu un determinant, poti sa vezi aici: http://en.wikipedia.org/wiki/Tetrahedron
« Ultima modificare: Septembrie 17, 2007, 04:09:04 de către Mircea Pasoi » Memorat
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #2 : Septembrie 17, 2007, 23:27:29 »

Am facut eu treaba cu determinant astfel:

Dupa cum am invatat eu la mate, un determinant de ordin N poate fi scris ca o suma de N! termeni, acestia fiind produse de N elemente si pot fi aflate generand toate permutarile de ordin N. Semnul fiecarui termen il aflu in functie de paritatea numarului de inversiuni. Buuun... si toata frumusetea asta de determinant o sa fie intreg tot timpul. Sunt absolut sigur ca pana aici nu apar erori de precizie, ca doar sunt intregi. Tin pe long double treaba ca sa fiu sigur.

Apoi afisez sqrt(determinant/2)/12 si iau WA pe testu 16.
« Ultima modificare: Septembrie 17, 2007, 23:31:30 de către Andrei Grigorean » Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
domino
Echipa infoarena
Nu mai tace
*****

Karma: 281
Deconectat Deconectat

Mesaje: 1.340



Vezi Profilul WWW
« Răspunde #3 : Septembrie 17, 2007, 23:51:03 »

Mi se pare ca pentru long double trebuie sa folosesti sqrtl ... altceva nu stiu ce ar putea fi  Eh?
Memorat
DITzoneC
Nu mai tace
*****

Karma: 301
Deconectat Deconectat

Mesaje: 962



Vezi Profilul
« Răspunde #4 : Septembrie 17, 2007, 23:59:52 »

Daca nu merge si nu merge.. poti oricand sa cauti binar rezultatul pe intregi (sau numere mari) cu precizia care trebuie  Tongue
Memorat
greco
Nu mai tace
*****

Karma: 144
Deconectat Deconectat

Mesaje: 434



Vezi Profilul
« Răspunde #5 : Septembrie 18, 2007, 07:39:46 »

Merge cu determinant pe long long si sqrt fara cine stie ce batai de cap... doar ca am impresia ca e vorba de alt determinant. Faci cu formula de pe wikipedia?
Memorat

Jump in the cockpit and start up the engines
Remove all the wheelblocks there's no time to waste
Gathering speed as we head down the runway
Gotta get airborne before it's too late.
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #6 : Septembrie 18, 2007, 14:36:37 »

Mersi maestre, in sfarsit AC.

Am schimbat determinantul ala din long double in long long si a mers. O fi de la minunatul Visual de pe SGU? Pe calculatorul meu am dat teste si primeam acelasi rezultat.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
greco
Nu mai tace
*****

Karma: 144
Deconectat Deconectat

Mesaje: 434



Vezi Profilul
« Răspunde #7 : Septembrie 19, 2007, 05:25:41 »

Mersi maestre

Simt o nota de ironie.  Tongue

Am schimbat determinantul ala din long double in long long si a mers. O fi de la minunatul Visual de pe SGU?

Na, erori de precizie tampite, ce sa le faci... dar era inutil sa faci calculele pe numere reale pentru ca la fiecare pas poate exista o mica abatere si din moment ce se face un numar de calcule sunt ceva sanse sa se acumuleze la a 4-a zecimala, presupun.
Memorat

Jump in the cockpit and start up the engines
Remove all the wheelblocks there's no time to waste
Gathering speed as we head down the runway
Gotta get airborne before it's too late.
wefgef
Nu mai tace
*****

Karma: 1049
Deconectat Deconectat

Mesaje: 3.008


razboinicu' luminii


Vezi Profilul
« Răspunde #8 : Septembrie 21, 2007, 17:27:45 »


Ti se pare, iti spuneam asa si cateodata cand ne intalneam in Jack Tongue.
Memorat

omului i-au fost date instinctele pentru a supravietui, nu pentru a fi sclavul lor.
greco
Nu mai tace
*****

Karma: 144
Deconectat Deconectat

Mesaje: 434



Vezi Profilul
« Răspunde #9 : Septembrie 22, 2007, 05:02:06 »

Mircea zice ca se presupune ca long double nu pierde precizie cand toate valorile sunt intregi, eu nu stiam faza asta. Daca asa stau lucrurile inseamna ca e dubios compilatorul din VC...  d'oh!
Memorat

Jump in the cockpit and start up the engines
Remove all the wheelblocks there's no time to waste
Gathering speed as we head down the runway
Gotta get airborne before it's too late.
Cosmin
Echipa infoarena
Nu mai tace
*****

Karma: 351
Deconectat Deconectat

Mesaje: 1.799



Vezi Profilul
« Răspunde #10 : Septembrie 22, 2007, 05:23:47 »

Parca zicea misof ca precizia la long double depinde de compilator si mai zicea pe acolo ca pt optimizare se tot schimba double in long double si dupaia rezultatu se converteste inapoi la double ... deci nu poti sa fi sigur cum se vor evalua expresiile. Mai bine inti unde se poate.
Memorat
Pagini: [1]   În sus
  Imprimă  
 
Schimbă forumul:  

Powered by SMF 1.1.19 | SMF © 2006-2013, Simple Machines