ilir Geschrieben 17. März 2019 Teilen Geschrieben 17. März 2019 Guten Abend an Alle , Ich habe diesen Mittwoch Zwisschen Prüfung . Wie löst man diese Übung ? Ich habe versucht ,aber ohne resultat Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Samus Aran Geschrieben 17. März 2019 Teilen Geschrieben 17. März 2019 Du musst zunaechst berechenen, wie gross ein Datensatz fuer ein einziges Bild ist, dann dieses Ergebnis mal 5000, da man 5000 Bilder, und demnach 5000 Datensaetze hat. Dabei soll jeder Block zu hoechstens 80% aufgefuellt sein. 4 kb sind 4000 byte, sind 32000 bit. Wenn wir also nur 80% des Blocks belegen duerfen, sind das 32000*(4/5) = 25600 [bit] bzw. 3200 byte. Zudem wird gesagt, dass in einem Block nur ganze Datensaetze sein duerfen. Das behalten wir erstmal im Hinterkopf. Berechnen wir jetzt wie gross ueberhaupt ein Datensatz ist. Dazu summieren wir einfach alle Daten auf (Bildname, Maler, etc.) wobei wir auf byte umrechnen: Bildname, Maler: 40char = 40byte Erstellungsjahr, Breite, Hoehe: 1 integer = 64 bit = (64 / 4) byte = ( 2^6 / 2^2) byte = (2^4) byte = 16 byte Verkauft: 1 Boolean: 1 byte 1 Float = 32 bit = ... = 8 byte da alles in byte ist, spare ich mir es in der untrigen Rechnung auszuschreiben: (2*40) + (3*16) + (1*1) + (1*8) = 137 [byte] Ok. Also ist ein Block 137 byte gross, wenn ich mich nicht verrechnet habe. Jetzt muessen wir wissen, wievieler dieser Datensaetze in einem Block passen, s.d. nur ganze Datensaetze im Block enthalten sind (das was wir im Hinterkopf behielten): wir rechenen in pseudo code sozusagen: floor(DatenSatzGroesse / BlockGroesse) also: floor(137 / 3200) das ist: = 23 [byte] wir rechnen durch 3200 und nicht durch die eigentliche groesse des Blocks, da verlangt wird, hoechstens 80% des Blocks zu belegen, warum auch immer. wir koennen kontrollieren ob wir richtig gerechnet haben: 137*23 ist 3151 [byte], wobei 24 Datensaetze schon zu viel gewesen waeren. Somit koennen wir 23 Datensaetze pro block abspeichern. Wir haben 5000 Datensaetze, daher: 5000 / 23 = 217.391304348... Oh nein, es geht nicht ganz auf. Wir brauchen also einen Block mehr, naemlich: ceil(5000 / 23) = 218 [block] Hab noch nie so ne Aufgabe geloesst, also rechne selbst bitte nach. Ich habe sehr wahrscheinlich einen Rechenfehler und/oder nen logischen Fehler gemacht! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ilir Geschrieben 17. März 2019 Autor Teilen Geschrieben 17. März 2019 Guten Abend , Vielen Dank für die Hilfe ! Könnten Sie bitte nochmal erklären .ich verstehe nicht 100% Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
arlegermi Geschrieben 17. März 2019 Teilen Geschrieben 17. März 2019 Woran genau scheitert's denn bei dir? Man kann dir am besten helfen, wenn du schreibst, was du bisher probiert hast und wo du nicht weiterkommst. Dir hier einfach die Lösung aufzuschreiben ist nicht wirklich sinnvoll, wenn es um einen Lerneffekt geht. @Samus Aran du hast da irgendwie komische 4Bit-Bytes... ein Byte sind gemeinhin 8 Bit - damit kommt man dann auf andere Zahlen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ilir Geschrieben 17. März 2019 Autor Teilen Geschrieben 17. März 2019 vor 16 Minuten schrieb arlegermi: Woran genau scheitert's denn bei dir? Man kann dir am besten helfen, wenn du schreibst, was du bisher probiert hast und wo du nicht weiterkommst. Dir hier einfach die Lösung aufzuschreiben ist nicht wirklich sinnvoll, wenn es um einen Lerneffekt geht. @Samus Aran du hast da irgendwie komische 4Bit-Bytes... ein Byte sind gemeinhin 8 Bit - damit kommt man dann auf andere Zahlen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
ilir Geschrieben 17. März 2019 Autor Teilen Geschrieben 17. März 2019 Gerade eben schrieb ahmetaj: könntest du bite diese nochmal gucken ? vor 21 Minuten schrieb arlegermi: Woran genau scheitert's denn bei dir? Man kann dir am besten helfen, wenn du schreibst, was du bisher probiert hast und wo du nicht weiterkommst. Dir hier einfach die Lösung aufzuschreiben ist nicht wirklich sinnvoll, wenn es um einen Lerneffekt geht. @Samus Aran du hast da irgendwie komische 4Bit-Bytes... ein Byte sind gemeinhin 8 Bit - damit kommt man dann auf andere Zahlen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
arlegermi Geschrieben 17. März 2019 Teilen Geschrieben 17. März 2019 Die Datensatzgröße stimmt schonmal. Bei den 4 KiloByte musst du drauf achten, dass die IHK mit KiloByte auch tatsächlich 1000 Byte meint (1024 wären KibiByte). Du musst also nicht 4096 * 8 rechnen für die Bits, sondern 4000. Ich würde dir außerdem raten, immer auf Byte-Ebene zu rechnen, da sind die Zahlen kleiner Wenn du jetzt weißt, wieviele Byte du in einen Block stecken darfst (also 0.8 * 4000 = 3200), dann musst du gucken, wieviele deiner 109-Byte-Datensätze du in einen Block bekommst. Mit der Zahl der Datensätze pro Block kannst du schließlich ermitteln, wieviele Blöcke du für alle (also 5000) Datensätze brauchst. Denk bei den letzten Schritten immer daran, dass nur ganze Datensätze bzw. Blöcke zählen - du kannst bspw. keinen halben Datensatz in einen Block packen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Cleper Geschrieben 19. März 2019 Teilen Geschrieben 19. März 2019 Was ist denn nun die Lösung also ich habe gerechnet also bis 109 Byte bin ich auch gekommen, dann habe ich 1 Block mit 4000 Byte = 80% = 3200 Byte Rechne die 109Byte mal 5.000 Datensätze =545000Byte durch 3200 Byte = 170 Blöcke ? Kann das sein ? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.