Page 5 sur 6

Re: Bric-à-Brac de Lord Nelson

Publié : jeu. 20/nov./2014 11:16
par Lord Nelson
Bonjour djes,

Je ne comprends rien aux algos de Lempel, Ziv, Huffman etc, c'est pas que je ne veux pas mais que je comprends rien !
Si ont m'explique pas avec des images et très très simplement je pige rien et encore...

Regarde, le binaire, comment tu crois que j'ai compris comment ça marchait hein ?!
Tu crois qu'on me la expliquer et que j'ai compris comment ça marchait ?
Non !, ont ma expliquer mais je comprenais rien :roll:

J'ai compris le fonctionnement en faisant toutes mes petites expérience à deux sous, tous seule j'ai compris comment ça marchait !
Tu vois, j'ai appris seule comment le binaire sa fonctionnais car je comprenais rien quand ont me l'as expliqué !

C'est la faute de personne, c'est juste moi qui est besoin de faire pour comprendre.
Alors ont va essayer de m'apprendre les algos de Lempel, Ziv, Huffman, etc, je vais rien comprendre et qui sait, un jour je vais en créer et me rendre compte que ça existe déjà !

J'me dirais alors, Mince ça existe déjà !!!
En me consolant je me dirais, bas tempi, au moins j'ai compris comment ça marchait !

Pour mon problème là, justement c'est l'inverse qui m’intéresse :)
Je vais compresser le binaire en nombre.

Voilà, merci.

Re: Bric-à-Brac de Lord Nelson

Publié : jeu. 20/nov./2014 11:54
par Ollivier
J'attends tes questions sur l'explication que je me suis pris la tête à t'écrire page précédente, s'il te plaît.

Re: Bric-à-Brac de Lord Nelson

Publié : jeu. 20/nov./2014 13:39
par Micoute
Bonjour, moi j'aimerais savoir comment faire un algorithme pour faire 50 = 1+2+3+4+5+6+7+8+9+5

pourriez-vous m'aider s'il vous plaît ?

Re: Bric-à-Brac de Lord Nelson

Publié : jeu. 20/nov./2014 13:49
par Lord Nelson
Voilà, je répond à ma question, créer par mes soins, merci à Micoute pour m'avoir guider sur le code de Décodage:

Code : Tout sélectionner

; Code un nombre en base 2 spéciale
Procedure.S CodeBase2Speciale(Nombre.Q)
  
  If Nombre.Q = 0
    ProcedureReturn "0"
  ElseIf Nombre.Q = 1
    ProcedureReturn "1"
  ElseIf Nombre.Q < 0
    ProcedureReturn "0"
  EndIf
  
  Compteur = 0
  
  Repeat
    I + 1
    Compteur + I
    Bin$ + "1"
  Until Compteur => Nombre.Q
  
  LongueurBin = Len(Bin$)
  Difference = Compteur - Nombre.Q
  
  Bin$ = Mid(Bin$, 1, Len(Bin$) - Difference)
  Bin$ + Space(Difference)
  Bin$ = ReplaceString(Bin$, " ", "0")
  
  ProcedureReturn Bin$
  
EndProcedure

; Décode une base 2 spéciale en nombre
Procedure.Q DecodeBase2Speciale(Bin$)
  
  For I = 1 To Len(Bin$)
    Compteur = Compteur + I
  Next
  
  ProcedureReturn Compteur - CountString(Bin$, "0")
  
EndProcedure

For Nombre = 0 To 990
Debug Str(Nombre) + " Codé = " + CodeBase2Speciale(Nombre) + ", Décodé = " + DecodeBase2Speciale(CodeBase2Speciale(Nombre))
Next

Si ya moyen de faire encore plus rapide car c'est très long sur les très grand nombre.

Re: Bric-à-Brac de Lord Nelson

Publié : jeu. 20/nov./2014 13:52
par Lord Nelson
Ollivier a écrit :J'attends tes questions sur l'explication que je me suis pris la tête à t'écrire page précédente, s'il te plaît.
Comment ça Ollivier ? :)

Re: Bric-à-Brac de Lord Nelson

Publié : jeu. 20/nov./2014 14:54
par Demivec
Lord Nelson a écrit :Si ya moyen de faire encore plus rapide car c'est très long sur les très grand nombre.

Code : Tout sélectionner

; Décode une base 1 spéciale en nombre
Procedure.q DecodeBase1Speciale(Nombre$)
  Protected Longeur, NombreSortie, i
  
  Longeur = Len(Nombre$)
  NombreSortie = Len(RTrim(Nombre$, "0"))
  
  For i = 1 To Longeur - 1
    NombreSortie + i
  Next
  
  ProcedureReturn NombreSortie
EndProcedure

; Code un nombre en base 1 spéciale
Procedure.s CodeBase1Speciale(Nombre.q)
  Protected i, Longeur, NombreSortie$
 
  If Nombre < 0
    ProcedureReturn
  EndIf
  
  Longeur = 1
  While Nombre > Longeur
    Nombre - Longeur
    Longeur + 1
  Wend
  
  NombreSortie$ = RSet("", Nombre, "1" )+ RSet("", Longeur - Nombre, "0")
  
  ProcedureReturn NombreSortie$
EndProcedure

For i = 0 To 990
  Debug "" + i + " = " + CodeBase1Speciale(i) + " = " + DecodeBase1Speciale(CodeBase1Speciale(i))
Next

Re: Bric-à-Brac de Lord Nelson

Publié : jeu. 20/nov./2014 14:54
par MLD
@ Salut Micoute

Pour répondre a ta question, je pense que le plus simple est d'utilisé le code machine. (Le Binaire) :lol:

Re: Bric-à-Brac de Lord Nelson

Publié : jeu. 20/nov./2014 15:24
par Ollivier
Micoute a écrit :Bonjour, moi j'aimerais savoir comment faire un algorithme pour faire 50 =
1+2+3+4+5+6+7+8+9+5
pourriez-vous m'aider s'il vous plaît ?

Code : Tout sélectionner

; Algo

Structure Micoute
   Seuil.I
   Max.I
   Reste.I
EndStructure

Procedure.I Micoute(*M.Micoute)
      *M\Max = Int((Sqr(1 + 8 * \Seuil) - 1) / 2)
      *M\Reste = \Seuil - \Max * (\Max + 1) / 2
EndProcedure

; Test

Procedure.S SuiteDeGauss(n.I, Arg.S = "")
   If n - 1
      Arg = SuiteDeGauss(n - 1, Arg) + "+"
   EndIf
    Arg + Str(n)
   ProcedureReturn Arg
EndProcedure

Define Micoute.Micoute

With Micoute
	\Seuil = Val(InputRequester("Micoute", "Donnez le seuil : ", "50") )
	Micoute(Micoute)
	MessageRequester("Micoute", Str(\Seuil) + " = " + SuiteDeGauss(\Max) + Chr(10) + "+" + Str(\Reste) )
EndWith

Re: Bric-à-Brac de Lord Nelson

Publié : jeu. 20/nov./2014 15:50
par Lord Nelson
Bonjour Demivec :)
Merci beaucoup pour votre amélioration :D

Re: Bric-à-Brac de Lord Nelson

Publié : jeu. 20/nov./2014 17:11
par Micoute
Merci Ollivier, je disais ça comme une boutade, mais ça marche encore mieux que ma méthode, je serai moins bête ce soir !

Re: Bric-à-Brac de Lord Nelson

Publié : ven. 21/nov./2014 15:38
par Azur
@Lord Nelson

Hello, cela fait quelques jours que je suis cette discussion.
Je pense que tout le monde a compris ton idée, tu voudrais pouvoir, je te cite :

Pour mon problème là, justement c'est l'inverse qui m’intéresse :)
Je vais compresser le binaire en nombre.


Pour ne rien te cacher, en informatique, tous les nombres sont en binaire, donc pour mieux comprendre ton envie, disons :

Je vais compresser le binaire en binaire.

Je pense que pour se lancer dans la création d'algo de compression, sujet de recherche par de mathématiciens extrêmement doués depuis les années 50 60, il faut tenter de partir sur de bonnes bases.

D'autre part :

Tu ne peux pas faire quelque choses du type :

1=1
01=2
001=3

En binaire 1 = 01 = 001
Et cette valeur, sur un ordinateur des années 80, occupera toujours 8 bits en mémoire ...

Alors il faut que tu te décides sur une taille de données, c'est du 8 bit du 16 du 33 peu importe mais tu ne peux pas changer le nombre de bits au grès de tes envies, car sinon ce nombre de colonnes devra aussi prendre un valeur, en binaire, et ta compression risque de se transformer en gonflement.

Si tu penses pouvoir décrire une valeur binaire avec une valeur binaire contenant moins de bits systématiquement, cela implique que l'opération est donc répétable à l'infini.
Penses tu que ce soit possible ?
Penses tu que ce que tu tentes de faire, des génération d'ingénieurs chez IBM ou consort n'y auraient pas déjà pensé ?

A un moment, tu dis que tu veux compresser des données ou des images.
Ce genre d'assertion prête à sourire en 2014, tant on sait que ce sont deux domaines ou la compression de données est abordée de façon strictement différente.

Tu n'as pas tort de continuer tes recherches dans ce sens, car, pendant ce temps là tu es en train de consolider tes connaissances.

Néanmoins, je pense que tu perds ton temps, à en juger par ton niveau en prog ( mais il faut bien débuter un jour, et tous les pros ont été débutants ) tu es en train de mettre la charrue avant le bœufs.
Un grand nombre de tes exemples démontrent que tu n'as pas l'expérience nécessaire en prog pour te lancer dans un sujet aussi complexe, pourquoi ? Parce que tu n'as pas assez programmé de façon généraliste auparavant, en assembleur par exemple, et certains de tes postulats de départ sont totalement erronés et te donnent l'impression que ce que tu cherches à faire est possible.

Pour gagner en expérience tu devrais essayer de coder des choses plus pragmatiques, essayer de solidifier tes fondations en prog, pourquoi ne pas implémenter un Lempel Ziv par exemple, pourquoi dis tu que tu n'y comprend rien ?
Je vais être honnête avec toi, tu me fais penser à certains de mes potes du temps où je faisais mes études, qui fumaient des joints, et partaient dans des considérations mystico-informatiques assez intenses, pas toujours fausses, mais rarement révolutionnaires, et souvent plus compliquées, pour résumer, ils tripaient à fond . Là également, je ne juge pas le bien ou le mal, mais bon, un vrai travail aillant pour but d'être productif, il vaut mieux parfois bosser concrètement à son niveau avant de penser pouvoir révolutionner l'informatique.

Voilà, je ne souhaite pas que tu prennes ce post comme une attaque. Simplement à un moment il faut être honnête avec soi-même et arrèter de triper, la programmation ça demande du temps et du travail, ce n'est pas compliqué mais il faut avoir du courage pour se lancer dans un projet qui doit être fini à un moment donné. Et c'est ça le plus dur en prog, la patience, la persévérance et l'obstination. Sans ça, jamais rien ne sort du compilateur que des exemples de codes qu'on ne sait plus faire fonctionner après quelques mois.


Amicalement.

Re: Bric-à-Brac de Lord Nelson

Publié : ven. 21/nov./2014 17:19
par Lord Nelson
Bonjour Azur,

Merci de ton poste, je l'es pas du tous mal pris.
Tout est vraie sauf que je fume pas du tout :mrgreen:

J'ai pas les base mais je cherche quand même à faire des choses qui me sont surement or de portées !
Je pers mon temps mais en même temps ça me plaie et j'ai rien d'autre à faire !

Et puis pour moi ce n'est pas une perte de temps car j'apprends, à ma façon voilà tout :)
Je saoul tous le monde avec mes idées débiles en plus.

Je peut être considéré comme "Un pauvre type" car c'est se que je suis, je veux dire par là que
Ont à rien à m'envier !

Pas de diplômes, pas de bac, rien, un pauvre gars sans valeur quoi :wink:
Mais je me démoralise pas pour autant et je m'en fiche de se que peuvent penser les gent à mon égard si c'est négatif !

Ont est comme ont est !

Je suis conscient de perdre mon temps, même si pour moi je ne le pers pas car au pire des choses, j'apprends :)
J'apprends avec mes capacité et avec mes moyen, j'ai aps un cuit de 300 moi hein !

Je programme pour mon plaisir et rien d'autre, je part dans des trip de dingue, et j'aime ça !!!
Ya que quand il faut le programmer et perdre sont temps et se rendre compte que en faite bha.... c'est d'la grosse daube se que je viens de faire :roll:

Sa me fais un peut rager mais pas grave, je continue et je me dis que je finirais
bien par trouver quelque chose un jour même si sa dois prendre 10 ans !

J'ai l'idée qu'un jour, pauvre crétin que je suis et sans valeur, trouvera peut être un truc pas trop mal !
Même si ça n'arrive jamais, pas grave, au moins j'aurais essayé :)

Cordialement et amicalement également.

Re: Bric-à-Brac de Lord Nelson

Publié : ven. 21/nov./2014 20:47
par SPH
Lord Nelson a écrit :Ont à rien à m'envier !
Si : ton titre de "Lord" :wink:

Re: Bric-à-Brac de Lord Nelson

Publié : sam. 22/nov./2014 0:16
par Azur
HelLord ( ça y est je compresse )
Je ne vois pas pourquoi tu te sous estime comme ça. Alors je te rassure tout de suite, si tu ne t'aimes toi pas toi même, personne ne le fera à ta place. A bon entendeur.
Avec tes connaissances en prog tu fais déjà partie du haut du panier.
On est entouré de gens qui savent à peine envoyer un mail avec pièce jointe, alors tu imagine, le binaire, la programmation. On a de l'or entre les mains.
Regarde l'histoire de l'informatique, crois tu que ce sont les plus compétents qui aient réussi ? Une idée à la con vaut des millions.
D'autre part, je ne vais pas faire mon pédant, mais de mémoire, Einstein (Albert) disait que l’intelligence ce n'est pas le savoir mais l'imagination.
Et de l'imagination, personne sur ce forum ne pourra te reprocher de ne pas en avoir.
Je le pense sincèrement car ta tentative sur la compression binaire est loin d'être stupide, mais je crains qu'elle soit vaine.
Moi je pense qu'un logiciel comme PureBasic est très stressant. On est là avec toutes les possibilités au bout du clavier, et que se dit on ? Se lancer dans un projet pharaonique de jeu, bof ce sera trop long je n'y arriverai jamais. Et c'est souvent le cas. L'internet est plein de projets de jeux avortés faute de temps/motivation.
C'est là qu'on se rend compte une fois de plus que la prog c'est très psychologique aussi. Trouver une motivation, combattre sa flemme, avoir du feedback positif. Au final se battre contre soi-même. Une solution ? Mode hardcore : reformater sa bécane, installer PB et coder soi même les utilitaires des base, client FTP, client mail, visionneuse de photos de minous.
Bon pour PhotoShop je te laisse arbitrer, mais ne dit on pas que la chance sourit aux audacieux.
Ou alors s'amuser à recoder des effets visuels de démos façon années 90, c'est très instructif aussi. Faire une belle page pour jouer des OGG, un music disc, et à mort l'optimisation et la compression. Montre ensuite le résultat à tes potes, à ta famille, et tu me rediras si tu as l'air d'un con.
Kennedy (pas Albert) disait, nous ne faisons pas les choses car elles sont faciles, nous les faisons car elles sont difficiles.
Voilà, à mon avis t'es un mec qui a du potentiel, maintenant je pense que t'as assez de culture informatique pour pouvoir te dire, je vais faire un logiciel qui fait ceci cela, une démo, un utilitaire à la con, et fais le, juste pour voir, et tu verras que c'est super dur, mais super bon (on dirait ma copine pour le coup)
Sinon, juste pour te confirmer, j'ai un algo qui prend tes posts et les transforme en Français bien orthographié, j'arrive à un gain de 10% en nombre de caractères, peut être un algo de compression en perspective ;) Je te chambre mais c'est rigolo, allez, ne laisse jamais ce que les autres pensent t'empêcher de faire ce dont tu rêve.
Et pour finir, je te prierai d'être précis, car sache que je n'ai pas un Q.I. de 300 mais un Q.I. de 307 ... diesel, donc du coup ça fume pas mal aussi.

Re: Bric-à-Brac de Lord Nelson

Publié : sam. 22/nov./2014 7:08
par MetalOS
Vue la tournure de ce post il devrait être déplacé dans divers...ici c'est la section débutant les gars.