Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Rätselecke » C-golf (determinante)

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ] [ 3 ] [ 4 ]
000
01.07.2003, 00:19 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Zu schreiben ist folgende Funktion

C++:
double det(double*m,int n);



m:ist ein 1D-Array in dem eine 2D-Matrix zeilenweise gespeichert ist, die quadratisch ist.
n ist die dimension der quadratischen matrix. Es gilt n>1;
Zu berechen ist die Determinante der Matrix.

Für die es nicht wissen. eine determinante einer 2X2 Matrix errechnet sich z.B. so:
2 4
3 7

Determinante ist 2*7-4*3;

von einer höherdimensionalen geht das z.B. so;

1 2 3
4 5 6
7 8 9

Determinante = 1 * Det 5 6 - 2*Det 4 6 + 3*Det 4 5
8 9 7 9 7 8

@virtual
Wenn du eine bessere Idee hast wie man das darstellen kann, verbesser das mal bitte. Danke im voraus.

So Par ist 250 Zeichen. Von virtual und beefy erwarte ich höchstens 200
und noch was allokierter Speicher muss wieder freigegeben werden.nicht wahr beefy

Viel Spass
Heiko

Ach so dies hier könnt ihr zum testen nehmen

C++:
int main(){
double *matrix=new double[3*3];
//erste Zeile
matrix[0]=1;
matrix[1]=2;
matrix[2]=-2;
//zweite Zeile
matrix[3]=1;
matrix[4]=2;
matrix[5]=1;
//dritte Zeile
matrix[6]=-1;
matrix[7]=3;
matrix[8]=1;

if(det(matrix,3)==-15) printf("super scheint zu funktionieren\n");
else printf("Pech gehabt nochmal versuchen\n");
delete [] matrix;
return 0;
}



--
...fleißig wie zwei Weißbrote

Dieser Post wurde am 01.07.2003 um 00:27 Uhr von Heiko editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
01.07.2003, 12:00 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@virtual und beefy
Ok, habs gerade selber geproggt, ich glaub 200 ist kaum zu schaffen. 230 reicht mir auch. Wenn ich mich nicht verzählt habe bin ich bei 236.

Gruss Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
01.07.2003, 13:15 Uhr
~karl-heinz-otto
Gast


geb die lösung frei!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
01.07.2003, 14:17 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)



Zitat:

geb die lösung frei!




Das soll ja ein Rätsel sein.
Ein bisschen mehr Mühe kannst du dir schon geben.

Wenn du was nicht verstanden hast frag

Gruss Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
01.07.2003, 14:20 Uhr
~karl-heinz-otto
Gast


glaubst du nicht, dass das bei einer n-ten matrix von z.B. n=100 ausartet?

ich würde das begrenzen
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
01.07.2003, 14:25 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Das interessiert den Algorithmus eigentlich nicht, solange genug Speicher vorhanden ist, den der allokieren kann.
Geh einfach davon aus das der genug Speicher hat.
100x100 sollte der übrigens problemlos schaffen.
Behaupte ich jetzt einfach mal. Werds gleich mal probieren.
Wieso bist du den so geil auf die Lösung?

Gruss Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
01.07.2003, 14:29 Uhr
~karl-heinz-otto
Gast


weil ich keine zeit jetzt grad habe selbst nachzudenken. Muss einen Bericht schreiben

Aber hast schon recht, es soll ja ein Rätsel sein.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
01.07.2003, 14:47 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


@karl-heinz-otto.
mit deinem n=100 hast du recht. Ich sitze hier gerade vor ner lahmen kiste (nur 440 MHz) und der rechnet sich ja schon bei n=20 zu tode.(ist halt vom aufwand her ne fakultät drin weil der ja(100*99er Determinaten errechnen muss => 100*99*98er Determinanten usw.)

Aber vom Prinzip her müsste auch n=100 gehen. Nur das du halt ewig auf das Ergebnis warten müsstest.

Gruss Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
01.07.2003, 15:07 Uhr
~karl-heinz-otto
Gast


ja, ich habs nicht ausprobiert. habs mir halt so gedacht.

wie lang hast du für deine lösung gebraucht?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
01.07.2003, 15:19 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


ging diesmal bei mir erstaunlich schnell weils gleich funktioniert hat.
10 minuten. und habe dann 2 Stunden dran gesessen um von 400 Zeichen auf 236 zu kommen.
Normalerweise dauert das bei mir allerdings viel länger weil ich bei den Array-idices immer was falsch mache. Diesmal war mir das Glück hold.

Habs gerade mal ausgerechnet. für n=15 braucht mein rechner schon 1000 Stunden. Bis n=12 ists mit ner guten halben Stunde gerade noch akzeptabel
n=18 überlebe ich schon gar nicht mehr

Getestet hab ichs auch nur an 3er und 4er Matrizen, von denen gabs beispiele und Lösungen im Internet, so das ich das nicht erst selber von hand rechnen musste
Gruss Heiko
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ] [ 3 ] [ 4 ]     [ Rätselecke ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: