Jump to content

Empfohlene Beiträge

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!

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
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.

 

1552854120392591429092.jpg

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen
Gerade eben schrieb ahmetaj:

 

1552854120392591429092.jpg

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.

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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.

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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 ?

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

Nimm an der Diskussion teil

Du kannst jetzt hier posten und Dich später registrieren. Wenn Du bereits über eine Konto verfügst, melde Dich jetzt an, um mit Deinem Konto zu posten.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.


Fachinformatiker.de, 2019 SE Internet Services

fidelogo_small.png

if_icon-6-mail-envelope-closed_314900.pnSchicken Sie uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App


Get it on Google Play

Kontakt

Hier werben?
Oder senden Sie eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...

Wichtige Information

Fachinformatiker.de verwendet Cookies. Mehr dazu in unserer Datenschutzerklärung