human
Compression de fichiers Comme les fichiers zip. Il me semble étrange que vous puissiez réduire un fichier à un fichier plus petit et ensuite tout récupérer. Explique comme si j'avais cinq ans.
gpt
Il existe de nombreuses façons de compresser les données. Je ne sais pas exactement comment fonctionne le format zip, mais je vais vous donner un exemple de la façon dont le texte peut être compressé/décompressé. Comme vous le savez probablement, le texte sur votre ordinateur est finalement stocké sous la forme d'un groupe de 1 et de 0. Jetez un oeil à [ceci] (URL_0) tableau ascii pour vous donner une idée de quelles lettres correspondent à quels nombres. Considérons maintenant le poème [ " The Raven " d' Edgar Allen Poe ] ( URL_1 ) . La lettre 'k' apparaît 32 fois et la lettre 'j' n'apparaît que 2 fois. En d'autres termes, dans votre ordinateur, le modèle '1101010' s'affiche 2 fois et '1101011' s'affiche 32 fois. Comment pouvons-nous utiliser ces informations pour compresser notre texte ? Eh bien, 'k' et 'j' sont presque le même nombre. Ils commencent tous les deux par " 110101 " . ' k ' devient un 1 et ' j ' devient un 0 . Créons une nouvelle règle. Pour écrire un 'k', au lieu d'écrire le '1101011' complet, enlevez le dernier et écrivez '110101' à la place. De plus , au lieu d' écrire ' 1101010 ' pour ' j ' , ajoutez un 0 supplémentaire à la fin ( pour faire ' 11010100 ' ) . Dans l'ensemble, nous avons économisé de l'espace. Chaque fois que nous rencontrons un 'k' nous écrivons seulement 6 nombres (au lieu de 7) et chaque fois que nous rencontrons un 'j' nous écrivons 8 nombres (au lieu de 7). Nous avons gagné 32 bits et perdu 2 bits pour une économie totale de 30 . Hourra ! Nous venons de compresser le texte. Bien que cela ne nous serve à rien si nous ne pouvons pas décompresser notre texte. Voyons ce que nous devons faire pour restaurer le poème original. Ainsi , chaque fois que nous trouvons 6 chiffres qui correspondent à un ' k ' ( 110101 ) supposons que nous venons de lire un ' k ' et passons à la lettre suivante . Si nous commençons à lire la lettre suivante et que nous trouvons un « 00 », alors nous avons fait une erreur. Jetez un œil au tableau ascii à nouveau. Aucune lettre ( dans la colonne binaire ) ne commence par un ' 00 ' . Ainsi , rencontrer un ' 00 ' au début d' une lettre signifie que nous devrions changer la dernière lettre en un ' j ' . Comme nous devons parfois revenir en arrière et corriger des erreurs, la lecture de notre document demande un peu plus de travail, mais presque toutes les compressions entraînent un compromis temps/espace similaire. Maintenant , dans le monde réel , obtenir une économie de 1 bit en changeant la façon dont ' k ' et ' j ' sont représentés serait assez idiot . Au lieu de cela , des économies beaucoup plus importantes sont réalisées en prenant des lettres super courantes ( par exemple ' e ' . Il apparaît 621 fois dans The Raven ) et en lui donnant un nombre super court ( comme 1 ) de sorte que si jamais vous commencez à lire une lettre et trouvez un 1 , vous savez immédiatement que vous avez affaire à un ' e ' . Si vous trouvez un 0, vous devrez lire quelques chiffres supplémentaires avant de pouvoir déterminer à quelle lettre vous avez affaire.