Du bist nicht eingeloggt! Möglicherweise kannst du deswegen nicht alles sehen.
  (Noch kein mods.de-Account? / Passwort vergessen?)
Zur Übersichtsseite
Hallo anonymer User.
Bitte logge dich ein
oder registriere dich!
 Moderiert von: Irdorath, statixx, Teh Wizard of Aiz


 Thema: pOT-lnformatik, Mathematik, Physik XIII ( Completely Automated Public User Test To tell PIMP )
« vorherige 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 [45] 46 47 48 49 50 51 52 nächste »
erste ungelesene Seite | letzter Beitrag 
Gore

Gori
 
Zitat von Achsel-des-Bösen

Folie 1: Title
Folie 2: "Warum ist ein schon existierendes Framework besser als ein neue zu entwickln"
Folie 3: Weil man es nicht mehr bauen muss.
Folie 4: Danke für die Aufmerksamkeit.

Und dann den Raum verlassen.

--

Ernsthaft, du solltest kündigen.



Ich habe gesiegt. Nun kann ich sterben.


Zum Sieg hab ich nur 4 Jahre benötigt.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Gore am 05.08.2013 16:44]
05.08.2013 16:43:42  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
MCignaz

Arctic
Hi, wer kann mir helfen, meine Rationalklasse zu reparieren? Augenzwinkern

http://pastebin.com/wzF8Zrpt
http://pastebin.com/p9hK0egi
http://pastebin.com/XMkF11iE

Ich komme mit dem Copy Konstruktor nicht zurecht wenn ich ein Rational aus einem Rational erstellen moechte.
05.08.2013 17:14:05  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Der Code ist so mumpitz.

Du schreibst class rational {} in den Header und dann in der
Implementierung nochmal, packst dann aber die Methoden-
definitionen mit rein, aber mit Namespace/Klassen-Quali (Rational:.

Rational d(&b);

Der Copy-Constructor will Rational&. Du gibst ihm da aber Rational*. Diese Typen
sind nicht miteinander kompatibel.

Weiterhin willst du überall const-Referenzen benutzen. Pastebin'ne gleich den Code.
05.08.2013 17:21:32  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
Ich werde versuchen, meiner Freundin (die null Ahnung von Computern hat) die Linuxwelt ein bisschen naeher zu bringen. Mal sehen, wie lange sie dabei bleibt.

05.08.2013 17:24:06  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
http://pastebin.com/BRHbXB5d

Was ich gemacht habe: Alles const gemacht was geht.

Rational::Rational(const Rational&)

get_nom, get_denom, printOut sind const-Methoden. Methoden mit const-Qualifier sind
die EINZIGEN Methoden, die man auf einer const& aufrufen kann. Damit sagt man
dem Compiler "diese Methode kann/darf nicht den State des Objekts verändern".
ALLE Getter müssen const haben.

Bei so einer kurzen Klasse lohnt sich die Aufteilung in Deklaration und Definition nicht,
pack da einfach beides in den Header.

Hausaufgaben für dich:

1) Schau dir an, wie man eigene Operatoren definiert / Operatoren
überlädt und schreibe add, sub, mult und div so um, dass man

Rational a(..), b(..);
c = a*b+b;

schreiben kann.

2) Warum ist es in diesem Fall es nützlicher reduce als "Rational &reduce()" zu deklarieren? (gibt *this zurück)
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von csde_rats am 05.08.2013 17:35]
05.08.2013 17:27:03  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Oli

AUP Oli 21.12.2018
 
Zitat von PutzFrau

Ich werde versuchen, meiner Freundin (die null Ahnung von Computern hat) die Linuxwelt ein bisschen naeher zu bringen. Mal sehen, wie lange sie dabei bleibt.




Fang an mit Gentoo oder Linux from scratch & TTY. Wenn sie das beherrscht, kann sie sich anderen Distributionen und einer DE widmen.

ich habe das auch versucht, aber der Mac ist und bleibt unschlagbar, was Usability angeht. Deshalb konnte ich sie nicht überzeugen.
05.08.2013 17:30:52  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
 
Zitat von Oli

 
Zitat von PutzFrau

Ich werde versuchen, meiner Freundin (die null Ahnung von Computern hat) die Linuxwelt ein bisschen naeher zu bringen. Mal sehen, wie lange sie dabei bleibt.




Fang an mit Gentoo oder Linux from scratch & TTY. Wenn sie das beherrscht, kann sie sich anderen Distributionen und einer DE widmen.

ich habe das auch versucht, aber der Mac ist und bleibt unschlagbar, was Usability angeht. Deshalb konnte ich sie nicht überzeugen.



ich habe das auch versucht, aber der Mac ist und bleibt unschlagbar, was Usability angeht.
------------------------------------------------------------------------^
expected: out of box
05.08.2013 17:32:13  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Oli

AUP Oli 21.12.2018
Erzähl mir was du willst, rats, aber die use cases, in denen Linux OS X im Desktop Betrieb schlägt sind wirklich sehr begrenzt. Frag Traxer. Augenzwinkern

Aber Apple ist halt evil und nicht vereinbar mit meinen moralischen Vorstellungen.
05.08.2013 17:34:05  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
pinnback

AUP pinnback 14.02.2010
...
 
Zitat von Oli

 
Zitat von PutzFrau

Ich werde versuchen, meiner Freundin (die null Ahnung von Computern hat) die Linuxwelt ein bisschen naeher zu bringen. Mal sehen, wie lange sie dabei bleibt.




Fang an mit Gentoo oder Linux from scratch & TTY. Wenn sie das beherrscht, kann sie sich anderen Distributionen und einer DE widmen.

ich habe das auch versucht, aber der Mac ist und bleibt unschlagbar, was Usability angeht. Deshalb konnte ich sie nicht überzeugen.


Ich hab vor ner Ewigkeit mal Ubuntu auf ihren Laptop geworfen, als Windows mal wieder voll mit Spy/Bloatware war und ich keinen Bock hatte auf "mach meinen Computer wieder ganz, ich hab doch nix gemacht". Waren anstrengende erste 2 Wochen. Jetzt ist seit >5 Jahren mit Ubuntu/Mint unterwegs und es ist kein Problem.
Mac war nie eine Frage
05.08.2013 17:34:55  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Oli

AUP Oli 21.12.2018
Ich war halt mal Apple Fanboy und habe sie quasi zu nem Mac Mini überredet. Dann, wenige Monate später, fand ich Apple auf einmal doof und wollte sie zu Linux überreden, aber da war es zu spät. Aber irgendwie sehe ich ja ein, dass ich selbst Schuld bin. Breites Grinsen

Dafür kann sie Latex!
05.08.2013 17:37:27  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Für den Standardkram, Office, Surfen, Bilder anschauen/sortieren/bearbeiten, Filme schauen
ist Linux schon lange problemlos einsetzbar, wenn die eingesetzte Hardware sich gut mit Linux
verträgt. Nen großes Problem scheinen hier v.a. billige Drucker und Scanner zu sein, während
zumindest höherwertige (Irgendwasscript-)Drucker problemlos laufen (die ganzen Kyocera-
Laserdrucker z.B.). Scanner weiß ich nicht, der von meinem Vater (Canon irgendawsSupertool 8800)
stand bei der Scansoftware unter inkompatibel, das Schwestermodell nicht. Mein Canon Leid-irgendwas
funzt problemlos. Nen billiger Fickmark-4000 Tintenpisser geht nicht mit 64-Bit oder so.

Leider scheint es doch öfter noch mit den Treibern zu haken.

Unity hat denke ich die Situation für Ottonormaluser verbessert, weil es sinnvolle Defaults hat,
ganz nett aussieht und relativ schnell ist.

Wenn es um Anpassbarkeit/Zuschneiden auf einem selbst geht, prügelt nen Linux nach wie vor die
Scheiße aus allem anderen raus. Breites Grinsen Siehe $hunderteWM, $nochVielMehrHilfstools, etc. pp.

Was IMHO nen weiterer großer Vorteil von Linux ist, sind die idR problemfrei funktionierenden
Paketmanager. Software installieren geht sehr schnell und komfortabel, Updaten ist im Vgl. zu
Windows ebenso unkompliziert und schnell für (fast) jegliche Software auf dem System gemacht.

Auf meiner Windows-Kiste update ich auch kaum noch Software, ist mir einfach zu nervig. Wenn
die sich halt nen Virus fängt kommt über die Platte wieder das Image rüber und das Datengrab
wird einmal auf Viren geprüft, feddich. Das geht vielfach schneller als wieder alles neu zu
installieren.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von csde_rats am 05.08.2013 17:43]
05.08.2013 17:40:03  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
Sie hat Windows, es kann daher nur gelingen!

05.08.2013 17:41:59  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Oli

AUP Oli 21.12.2018
Mal eine Frage zu double.

Ich gruppiere bestimmte Objekte nach einem ihrer member, einem double. Das Gruppieren ist relativ wichtig für die Effizienz meiner Algorithmen. Nun kann es sein, dass dieser double Wert 1.337e11 ist oder auch 1.337e-6, also von sehr klein bis sehr groß alles.

Leider, wegen der doofen unsicheren bits von CPUs und so, unterscheiden sich meine Zahlen teilweise ein bisschen. Ich will jetzt eine round() funktion schreiben, die bei sehr großen Zahlen bei einer niedrigeren Präzision abschneidet und bei sehr kleinen Zahlen bei einer höheren Präzision.

Mein Problem ist identisch zu diesem hier. Die Lösung des Typens ist, die double Zahl in Mantisse und Exponent aufzudröseln, Mantisse abzuschneiden und nachher wieder double draus machen.

Meine Fragen:

1. Stimmt es, dass die Unsicherheiten im Umgang mit double nur in der Mantisse liegen?
2. Gibt es ein effizienteres Verfahren als das unten?
 
Code:
double value = original_input();
static const double FACTOR = 32.0;
int exponent;
double temp = double(round(frexp(value, &exponent) * FACTOR));
value = ldexp(temp / FACTOR, exponent);

3. Gibt es vllt. vorgefertigte Funktionen dafür?
05.08.2013 17:47:40  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Hilft dir vielleicht schon long double? Oder __float128? (gcc extension)

Letzteres weiß ich aber nicht was der emittiert. Vielleicht macht der da
SSE-Instruktionen draus, vielleicht Software. Letzteres wäre natürlich
richtig übel für die Perfomance.

Der Unterschied long double <=> double sollte eher gering sein.


Was genau meinst du mit Unsicherheiten? Darstellungsfehler (1/10 in
FP?) entstehen innerhalb der Mantisse, ja. Rundungsfehler sollten auch
nur dadurch entstehen.

Die Mantisse gibt quasi den Wert vor, der Exponent in welchem Bereich
man sich bewegt.

TeX: Mantisse \times 2^{CK-127} = M \times 2^E, E ist dann halt +-127.
[Dieser Beitrag wurde 4 mal editiert; zum letzten Mal von csde_rats am 05.08.2013 18:02]
05.08.2013 17:55:06  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
nobody

nobody
 
Zitat von csde_rats

...



Ich bin bei Linux immer wieder mit jedem Rechner an den Punkt gekommen, dass irgendwas nicht funktioniert und sich auch ums verrecken nicht hinbiegen ließ, trotz total laienfreundlicher () Erklärungen in Foren/Wikis.

Ich würde der Sache gerne mal wieder eine Chance geben (mache ich spätestens 1x pro Jahr), aber nachdem ich gelesen habe, was ich alles tun muss, um Dual Boot auf meinem Laptop zum laufen zu kriegen (falls es überhaupt klappt), habe ich direkt wieder die Lust verloren.

Klar erscheint dir das alles pisseasy, aber du arbeitest auch schon ewig damit. Ob ich einen völligen Computeranfänger damit großziehen würde... weiß ich nicht. Vermutlich sinnvoll -- vermutlich ist es aber sinnvoller, den Leuten erstmal beizubringen, mit Microsoft-Kram vernünftig klar zu kommen. Die Chance, dass einem das später im Arbeitsleben mal begegnet, ist dann doch etwas höher (zumindest bei Leuten, die nichts "mit Computern" machen).


Übrigens hat meine Mutter es geschafft, ihr Linux Mint soweit zu zerschießen, dass ich es nicht mehr in den Griff bekommen habe. Und das, obwohl ich ihr nicht mal das root Passwort gesagt habe. Wtf.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von nobody am 05.08.2013 18:08]
05.08.2013 18:07:42  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SwissBushIndian

AUP SwissBushIndian 07.11.2011
Meine Freundin wollte von sich aus wechseln, weil sie Windows scheisse fand. Jetzt kriegt sie immer Ubuntu LTS. Sie ist zufrieden und mein Aufwand ist minimal weil sie praktisch alles alleine packt. Sie hat sich aber auch freiwillig Latex beigebracht und ist offenbar doch ein wenig technikaffiner als man meinen würde.
05.08.2013 18:31:42  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Dualboot empfand ich als relativ einfach einzurichten, goldene Regeln
(1) Windows immer zuerst installieren
(2) GRUB in den MBR/GPT packen, nicht den Windows-Loader. Mit letzterem
geht es aber auch, wenn man den MBR von GRUB in eine Datei auf C:/ speichert
und manuell einträgt. Ist aber aufwändiger.

Ich sag ja — leider hapert es öfter an der Hardware als man meinen möchte.
Immerhin scheinen die OSS-GPU-Treiber auch bei ATI/NV so weit zu sein, dass
sie für 2D gut sind.

Vieles hat sich aber in den letzten ~10 Jahren enorm verbessert, dass muss man
imho schon sehen.

In Sachen Hardware ist man fein raus, wenn man sich vor dem Kauf schlau macht.

Scanner: http://www.sane-project.org/cgi-bin/driver.pl
Drucker: http://www.openprinting.org/printers
Grafikkarten: <gehen ja alle, würde, wenn 3D nicht so wichtig ist, Intel bevorzugen>
Storage/RAID: <gehen alle>
Netzwerk: Den Realtek-Müll möglichst meiden, aber der taugt ja auch unter Windows keinen Meter
Sound: <geht alles AC'97/IntelHD-kompatibles, also alles>
WLAN: <geht inzwischen FAST alles, würde den chipsatz vor nem Kauf kurz googeln>
Laptops: <kurz googlen, gibt wohl öfter mal ACPI-probleme>



Meine persönliche Dauerlinuxnutzererfahrung geht nichtmal sonderlich lange. Ich
hatte mal um '07 herum nen Jahr oder so Debian aufm Laptop, da habe ich als 14-
jähriger es, soweit ich mich erinnere, auf Anhieb geschafft die ATI-Graka mit
3D-Beschleunigung hinzukriegen.

Danach fast nur Windows bis März'12(?), wo ich Ubuntu auf meinen ersten Laptop
seit '08 installiert habe. Vorher hatte ich Debian auf nem Altlaptop, aber nicht
relevant genutzt.
Seit Herbst'12 habe ich mein Thinkpad erst mit Ubuntu und dann Arch und das meiste
klappte problemlos.
Ich bin eigentlich auch kein Ololol-Alles-in-der-Shell-Poweruser, bis vor ein paar
Wochen habe ich für jedes Skript erstmal Handbücher studiert. Momentan bin ich
auf dem Level von "kriegt mittelmäßig-komplexe Expressions hin, schafft es längere
Pipes in mehreren Versuchen zusammenzuschrauben".

Ich vermute also einfach mal, dass ich als viel erfahrener hier rüberkomme, als
ich es eigentlich bin.


Wie dieses ganze mit Rechteverwaltung, Policykit, irgendwelchen Uirgendwas-Daemons
funktioniert etc. habe ich keinerlei Ahnung von. Ich hab hier nur meinen einen
Account mabe, den ich einfach in die meisten mir sinnvoll vorkommenden
Gruppen gesteckt habe.

Daemons? Keine Ahnung, systemd wird bestimmt alles was ich am Desktop brauch
gestartet haben. "Meine" Daemons (pulseaudio, mpd, i3pystatus) starte ich in
der .xinitrc . Ob das aktuelle best-practice ist? Keine Ahnung... Breites Grinsen

Wenn ich Probleme habe google ich einfach und finde meist schon eine Lösung.
Manchmal, selten, kriege ich das auch selber recherchiert. Aber strace auf
einen Prozess zu werfen, der beim Start hängt, ist ja kein Hexenwerk (da bin
ich auch nichtmals von selbst drauf gekommen letztens... Augenzwinkern




Ich will hier auch nicht großartig Linux verteidigen, darauf aufbauende OS haben
auch ne Menge nerviger Macken, mein Punkt ist hier lediglich, dass man kein
uber sein muss um Linux zu nutzen, was durch die anderen Erfolgsgeschichten hier
auch schön unterstrichen wird.

Wenn man also Computer bisher nur mit Windows benutzt hat, dann muss man sich
mental einfach darauf einstellen, dass Linux anders funktioniert und ein
Umstieg erstmal Zeit braucht und viel lernen bedeutet.

Das kann man als nervig empfinden oder auch als Bereichung der eigenen Person
sehen.
[Dieser Beitrag wurde 4 mal editiert; zum letzten Mal von csde_rats am 05.08.2013 19:08]
05.08.2013 18:56:34  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
 
Zitat von csde_rats

Dualboot empfand ich als relativ einfach einzurichten, goldene Regeln
(1) Windows immer zuerst installieren
(2) GRUB in den MBR/GPT packen, nicht den Windows-Loader. Mit letzterem
geht es aber auch, wenn man den MBR von GRUB in eine Datei auf C:/ speichert
und manuell einträgt. Ist aber aufwändiger.



Viele leute wissen nicht, was du mit (2) meinst.
Insgesamt ist Linux aber mittlerweile (bzw. schon immer seit ich es nutze) schon sehr anwenderfreundlich geworden, i.e. man kann es (eine entsprechende Distro vorausgesetzt) installieren und es laeuft.
Ich hatte bei meinem Laptop Probleme mit dem WiFi, es ging einfach nicht. Hat sich rausgestellt, dass es auch unter Win7 nicht ging und man unter WinXP booten musste und die Netzwerkkarte aktivieren, dann neustarten. Dumm nur, dass bei der Installation von WinXP ein Bluescreen kam.

05.08.2013 19:08:25  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
Ich bin mir aber sehr sicher, dass der Ubuntu-Installer, wenn er merkt,
dass schon Windows installiert ist, automatisch Dual-Boot einrichten kann,
wenn ausreichend Platz in der Windows-Partition frei ist.

WIFI, Bluetooth und in besonderem Maße UMTS/GSM-Modems sind unter allen
Betriebssystemen (okay, ich kann es nur für Windows und Linux persönlich
sagen) einfach mehr oder weniger holprig. Das UMTS-Modem in einem meiner
Laptops ging nur bei jedem 3-4 Boot, unabhängig vom OS. Bluetooth zickt
bei meinem Thinkpad tatsächlich manchmal rum, wenn ich den WLAN-Schalter
aus/an mache, geht es dann.
05.08.2013 19:11:17  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
Ja, Ubuntu sollte das automatisch einrichten.

05.08.2013 19:12:28  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
B0rG*

Gordon
 
Zitat von Oli

Mal eine Frage zu double.



Könntest du ein bisschen genauer beschreiben, welche Genauigkeit du erreichen möchtest? Möchtest du außerdem mit den Werten weiterrechnen oder sollen sie nur für einen Bucket-Sort benutzt werden?

---


Ich habe das Gefühl wer ein bisschen Linux (produktiv) benutzt dessen Wahrnehmung von "einfach" verschiebt sich etwas. Man muss sich vor Augen halten, dass ein Großteil der Computerbenutzer nicht weiß, was eine Konfigurationsdatei oder ein Terminal ist. Wahrscheinlich wissen auch so einige nicht, was Dateien überhaupt sind.
Für solche Menschen ist Linux nicht die richtige Wahl, vielleicht nicht weil sie es nicht benutzen könnten. Sondern weil Linux da nicht seine Stärke hat.
Ab und an probiere ich kurz MacOS. Und ich hasse es. Einerseits natürlich weil ich es nicht verstehe, aber andererseits weil es mich in ein Denkmuster von "Intuitivität" zwingen möchte, dem ich nicht folgen kann oder will.
Umgekehrt werden Leute die nicht programmieren, die auf grafische (ließ: betont hübsche) oder gestenbasierte Interfaces stehen und sich am liebsten nicht mit dem PC auseinandersetzen würden niemals mit Linux grün werden. Zu recht.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von B0rG* am 05.08.2013 19:36]
05.08.2013 19:30:11  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
Gibt es eigentlich eine Seite, auf der man taeglich coole Linuxtricks lesen kann (die man zwar groesstenteils wieder vergisst, aber ein paar Sachen bleiben doch haengen). Einfach so ein Blogpost, den man in fuenf Minuten durch hat.

05.08.2013 19:33:06  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Oli

AUP Oli 21.12.2018
 
Zitat von B0rG*

 
Zitat von Oli

Mal eine Frage zu double.



Könntest du ein bisschen genauer beschreiben, welche Genauigkeit du erreichen möchtest? Möchtest du außerdem mit den Werten weiterrechnen oder sollen sie nur für einen Bucket-Sort benutzt werden?


Also im Prinzip reicht mir double völlig. Es sollen halt zwei Zahlen, die sehr dicht beieinander liegen, auf den selben Wert gerundet werden. Dabei variiert der Fehler relativ zur Größe der Zahlen; Wenn ich sehr große Zahlen vergleiche, sind mir Nachkommastellen quasi schon egal, bei sehr kleinen muss ich natürlich die 9. Nachkommastelle oder so noch mitnehmen. Es geht also quasi um das Runden auf eine relative Genauigkeit.

Präzisionsprobleme habe ich eigentlich keine, weil die Werte, die cih brauche, locker in double passen.
05.08.2013 19:33:27  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Oli

AUP Oli 21.12.2018
 
Zitat von PutzFrau

Gibt es eigentlich eine Seite, auf der man taeglich coole Linuxtricks lesen kann (die man zwar groesstenteils wieder vergisst, aber ein paar Sachen bleiben doch haengen). Einfach so ein Blogpost, den man in fuenf Minuten durch hat.




Linuxthread. Außerdem gibt es da kostenloses Fanboytum eine ganze Menge rage. Augenzwinkern
05.08.2013 19:34:08  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
B0rG*

Gordon
 
Zitat von Oli

Also im Prinzip reicht mir double völlig. Es sollen halt zwei Zahlen, die sehr dicht beieinander liegen, auf den selben Wert gerundet werden. Dabei variiert der Fehler relativ zur Größe der Zahlen; Wenn ich sehr große Zahlen vergleiche, sind mir Nachkommastellen quasi schon egal, bei sehr kleinen muss ich natürlich die 9. Nachkommastelle oder so noch mitnehmen. Es geht also quasi um das Runden auf eine relative Genauigkeit.

Präzisionsprobleme habe ich eigentlich keine, weil die Werte, die cih brauche, locker in double passen.



Prinzipiell leisten Fließkommazahlen mit einer bestimmten Anzahl gültiger Ziffern ja genau das. Lässt sich dein Problem lösen, indem man die Zahlen auf eine feste Anzahl gültiger Ziffern rundet (die dann entsprechend weniger sind als bei double) oder sollen die sich auch unterscheiden?

Kurzer Hack: Hast du überlegt, solang die Exponenten reinpassen, die Zahlen nach float zu casten?

e/ Außerdem: CommandlineFu
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von B0rG* am 05.08.2013 19:57]
05.08.2013 19:41:16  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
MCignaz

Arctic
...
 
Zitat von csde_rats

http://pastebin.com/BRHbXB5d

Was ich gemacht habe: Alles const gemacht was geht.

Rational::Rational(const Rational&)

get_nom, get_denom, printOut sind const-Methoden. Methoden mit const-Qualifier sind
die EINZIGEN Methoden, die man auf einer const& aufrufen kann. Damit sagt man
dem Compiler "diese Methode kann/darf nicht den State des Objekts verändern".
ALLE Getter müssen const haben.

Bei so einer kurzen Klasse lohnt sich die Aufteilung in Deklaration und Definition nicht,
pack da einfach beides in den Header.

Hausaufgaben für dich:

1) Schau dir an, wie man eigene Operatoren definiert / Operatoren
überlädt und schreibe add, sub, mult und div so um, dass man

Rational a(..), b(..);
c = a*b+b;

schreiben kann.

2) Warum ist es in diesem Fall es nützlicher reduce als "Rational &reduce()" zu deklarieren? (gibt *this zurück)


Bin bisher nicht dazu gekommen zu antworten. Vielen Dank!
So wie es da im Pastebin steht, kompiliert es zwar bei mir nicht, aber vielleicht lag das auch an Visual Studio und irgendwelchen include Pfaden.
06.08.2013 0:07:55  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
PutzFrau

Phoenix Female
 
Zitat von B0rG*


e/ Außerdem: CommandlineFu



Das ist schonmal ganz cool, danke.

06.08.2013 0:14:24  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
csde_rats

AUP csde_rats 04.09.2021
 
Zitat von MCignaz

 
Zitat von csde_rats

http://pastebin.com/BRHbXB5d

Was ich gemacht habe: Alles const gemacht was geht.

Rational::Rational(const Rational&)

get_nom, get_denom, printOut sind const-Methoden. Methoden mit const-Qualifier sind
die EINZIGEN Methoden, die man auf einer const& aufrufen kann. Damit sagt man
dem Compiler "diese Methode kann/darf nicht den State des Objekts verändern".
ALLE Getter müssen const haben.

Bei so einer kurzen Klasse lohnt sich die Aufteilung in Deklaration und Definition nicht,
pack da einfach beides in den Header.

Hausaufgaben für dich:

1) Schau dir an, wie man eigene Operatoren definiert / Operatoren
überlädt und schreibe add, sub, mult und div so um, dass man

Rational a(..), b(..);
c = a*b+b;

schreiben kann.

2) Warum ist es in diesem Fall es nützlicher reduce als "Rational &reduce()" zu deklarieren? (gibt *this zurück)


Bin bisher nicht dazu gekommen zu antworten. Vielen Dank!
So wie es da im Pastebin steht, kompiliert es zwar bei mir nicht, aber vielleicht lag das auch an Visual Studio und irgendwelchen include Pfaden.


Giev Fehlermeldung, genau das Pastebin kompiliert bei mir ohne Warnungen
gcc 4.8.1, -Wall -Wextra -Wpedantic -Werror

clang 3.3 ist auch still.
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von csde_rats am 06.08.2013 0:55]
06.08.2013 0:54:54  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Oli

AUP Oli 21.12.2018
 
Zitat von B0rG*

 
Zitat von Oli

Also im Prinzip reicht mir double völlig. Es sollen halt zwei Zahlen, die sehr dicht beieinander liegen, auf den selben Wert gerundet werden. Dabei variiert der Fehler relativ zur Größe der Zahlen; Wenn ich sehr große Zahlen vergleiche, sind mir Nachkommastellen quasi schon egal, bei sehr kleinen muss ich natürlich die 9. Nachkommastelle oder so noch mitnehmen. Es geht also quasi um das Runden auf eine relative Genauigkeit.

Präzisionsprobleme habe ich eigentlich keine, weil die Werte, die cih brauche, locker in double passen.



Prinzipiell leisten Fließkommazahlen mit einer bestimmten Anzahl gültiger Ziffern ja genau das. Lässt sich dein Problem lösen, indem man die Zahlen auf eine feste Anzahl gültiger Ziffern rundet (die dann entsprechend weniger sind als bei double) oder sollen die sich auch unterscheiden?

Kurzer Hack: Hast du überlegt, solang die Exponenten reinpassen, die Zahlen nach float zu casten?

e/ Außerdem: CommandlineFu


So, habe nochmal investigiert. Meine Probleme kommen daher, dass sich eine Summe von identischen Zahlen anders verhält als Multiplikation. Folgendes Beispielprogramm illustriert das:

 
Code:
#include <iostream>

int main()
{
    const int    n     = 100;
    const double b     = 1.337;
    double running_val = 0.0;

    for(int j = 0; j < n; ++j)
        running_val += b;

    printf("%.15f\n", running_val - (n*b));

}


Leider lässt sich das in meinem Falle nicht umgehen. Was kann ich tun, um die Summe von Zahlen gleich dem Produkt zu machen?

/e: Passiert auch bei float.
[Dieser Beitrag wurde 5 mal editiert; zum letzten Mal von Oli am 06.08.2013 10:35]
06.08.2013 10:30:59  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
B0rG*

Gordon
Der cast zu float wäre nur eine einfache Möglichkeit um die Anzahl der gültigen Ziffern zu vermindern.

Du kannst leider garnichts machen, um die Gleichheit an der Stelle zu garantieren. Floating-Point-Arithmetik ist weder Assoziativ noch Distributiv. Jede Art von Runden (also Vermindern von gültigen Ziffern) erzeugt ja nur wieder eine Gleitkommazahl die wieder das selbe Problem hat.
Aber: Man kann sich sicherlich drumrum bescheissen. Das einfachste sind wsl Buckets.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von B0rG* am 06.08.2013 10:52]
06.08.2013 10:50:52  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
 Thema: pOT-lnformatik, Mathematik, Physik XIII ( Completely Automated Public User Test To tell PIMP )
« vorherige 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 [45] 46 47 48 49 50 51 52 nächste »

mods.de - Forum » Public Offtopic » 

Hop to:  

Thread-Tags:
Mod-Aktionen:
09.08.2013 17:58:27 Rufus hat diesen Thread geschlossen.
08.04.2013 15:15:29 Teh Wizard of Aiz hat diesem Thread das ModTag 'pimp' angehängt.

| tech | impressum