Accéder au contenu principal

Ce que j'ai demandé à l'I.A., étonne mais reste des 'templates' de RUST mal fait.

La question du jour. 

 j'ai demandé à un générateur de code fait par l'I.A. si elle pouvait comprendre une phrases simple et générer une erreur. De ce fait voici comment l'erreur ressemble. Je ne dis pas qu'elle n'est pas capable de travailler et de faire de la programmation. Disons que j'ai donné toutes les chances à l'I.A. de surpasser les connaissances que j'ai si j'avais seulement 5 minutes pour faire quelque choses. La réponse serait j'aurais moins 50% de vrai malgré ce qu'elle laisse comme trace. Elle laisse aussi des problèmes et une forme d'incompréhension qui laisse aussi le choix des "templates" pourqu'elle choisissent un "template" de Type RUST qui n'est pas tout à fait adapter. 

 

Note final. 

Si le professeur expliquent qu'il veut un calcul de Fibonacci et de voir ou est le résultat. Oui 40% de la pratique est là et elle comprend qu'il s'agit de calculer du Fibonacci. Mais c'est elle en quoi ça implique faire du Fibonacci.  

 

La question qui tue. 

La fameuse commande où phrase demandé à l'I.A. consiste à demander: 

"Generate a 96 bit counter to produce Fibonacci sequence from the counter and to output to stdout" 

En français : "Génère un compteur supportant 96 bit de comptage et me rapporter le le Fibonacci à partir du résultat du compteur et me l'affiché à l'écran." 

Liberté de décompte. 

De un, je n'ai rien dit du compteur comme étant libre de foi. Un compteur peut commencer du 96ième bit ( ou en décimal 79228162514264337593543950336 ) et descendre à 0. C'est beaucoup plus sécuritaire, mais là encore le code de l'I.A n'indique pas si il s'agit d'une augmentation du compteur ou est un compteur réductionniste. 

à la ligne 53 est la grosse déception de comment elle passe de 96bit un enjeu d'espace à 94 ( après avoir touché le 96iemes bit ou nombre je descend de 2 autres bit et re-compte le Fibonacci). Une très grosse erreur. Elle a donc compris faire un compteur de 96bit et y mettre le Fibonacci de même.


 Elle a compris de le compteur était en 96 bit. Moi 96 bit c'est 3 x 32 bit et non 3 x 64 ou 192 bit. Aviez vous déjà lu un roman d'enfant avec l'ordinateur qui voulait des raisonement super complexe et qui n'est pas capable de faire une multiplication de nombre cohérente. De plus ce roman jeunesse produit les résultats à l'imprimante en plus.


 Et voici l'erreur en question "store the Fibonacci number as three 64-bit part". Oui elle comprend qu'un Fibonacci c'est gros, mais plutôt tout est en 96 bit et le nombre ou niveau de Fibonacci pouvant entrer dans un 96 bit est un niveau 140. ou au niveau 139 le Fibonacci en cours est à 50095301248058391139327916261 encore trop petit pour 2^96. 

Donc ici le Fibonacci et sont format d'impression est bel et bien "%llu%016llu%016llu" un "%llu" c'est 64 bit. Alors il y a beaucoup d'espace et c'est avoir migré un Template Rust de 32 bit à 64 bit et oublier d'ajuster le calcul qui doit être à 96 bit.

Personnellement, un Fibonacci de 96bit ou Fib(79228162514264337593543950336) est trop gros même sur Python. Pour l’exercice et avoir la paix d'esprit pour la représentation numérique de nombre à un chiffre de sortie j'ai utilisé math.set_int_max_str_digits(7200) pour dépasser la représentation de 3400 caractères par défaut et avoir le Fibonacci Fib(16384) et c'est très gros. 

Voici l'expansion binaire versus le niveau Fibonacci escompté. Utilisé le nombre Fib(X) ou X est un nombre entre 1 et 16384 donne une représentation binnaire extraite au logarithme de la base de 2. Naturellement il y a des virgules et les conditions ou la virgule apparaît, alors le nombre Fibonacci est stocké ou interprétable avec un bit de plus. Utilisant:

       
    ArrayBin=list()
    for i in range( len(ArrayList) ):
        if i == 0 :
            ArrayBin.append( 0 )
        elif i == 1:
            ArrayBin.append( 1 )
        elif i == 2:
            ArrayBin.append( 1 )
        elif i == 3:
            ArrayBin.append( 2 )
        else:
            xBin = round( math.log( ArrayList[i], 10 ) / math.log( 2 , 10 ) )
            if float( xBin ) < float( math.log( ArrayList[i], 10 ) / math.log( 2 , 10 ) ):
                ArrayBin.append( xBin+1 )
            else:
                ArrayBin.append( xBin )
    return ArrayBin
       
 

 Graphique à l'appui. 


 Ce qu'il faut savoir.

Que le Fibonacci Fib(16383) entre dans 11373 bit et interpolant tous les nombres inférieur à Fib(16383) nous pouvons faire une règle d'équation dans lequel lorsqu'un nombre est demandé entre 1 et 16383 de faire si X est un nombre entre 1 et 16383 :

à la forme AX+C : 

1.44051701398048008441 * X donne le nombre de bit nécessaire et relate que l'équation de Fibonacci pourrait demander une équation supplémentaire pour la stocker. Ici j'ai demandé de l'affiché à l'écran, mais en fait il doit y avoir un stockage pour le calcul. ici le nombre final tient dans 1.5 kilo Octets.

 

le code est le suivant et est disponible en ligne:

 


 

 

 

 

Le code n'est non plus pas possible à compiler. Utilisant le "NASM" pour "net-wide assembler" vous pouvez utiliser "SAMS" sous "linux" et installer "NASM" aussi requis vous devez allé dans les options de configurations et coché pour le support 64 bit. Vous pouvez aussi utiliser "TutorialsPoint" un portail d'aide à la programmation mais l'erreur reste la même.

 

Encore une histoire de "template" RUST qui n'est pas bien calibré il est en 32/64 bits le code et ne supporte pas les saut simples. D’ailleurs il n'y a que ARM et le RISC-V qui supporte les saut simple voir un "goto". Plusieurs autre interface web et Assembler pour 32bit et x86_64 sont disponible mais ne supporte pas l'adressage à la pile ou BSS (Boundary Stack Segment)

 

Si le code n'est plus disponible :

       
section .data
    fmt db "%llu%016llu%016llu", 10, 0  ; format for printing three 64-bit parts (high, mid, low) with newline

section .bss
    ; We'll store the 96-bit Fibonacci numbers as three 64-bit parts:
    ; fib_n_minus_2: 96-bit number (high, mid, low)
    ; fib_n_minus_1: 96-bit number (high, mid, low)
    ; fib_n: current Fibonacci number (high, mid, low)
    fib_n_minus_2_high resq 1
    fib_n_minus_2_mid  resq 1
    fib_n_minus_2_low  resq 1

    fib_n_minus_1_high resq 1
    fib_n_minus_1_mid  resq 1
    fib_n_minus_1_low  resq 1

    fib_n_high resq 1
    fib_n_mid  resq 1
    fib_n_low  resq 1

section .text
    global main
    extern printf

main:
    ; Initialize fib(0) = 0
    mov qword [fib_n_minus_2_high], 0
    mov qword [fib_n_minus_2_mid], 0
    mov qword [fib_n_minus_2_low], 0

    ; Initialize fib(1) = 1
    mov qword [fib_n_minus_1_high], 0
    mov qword [fib_n_minus_1_mid], 0
    mov qword [fib_n_minus_1_low], 1

    ; Print fib(0)
    mov rdi, fmt
    mov rsi, [fib_n_minus_2_high]
    mov rdx, [fib_n_minus_2_mid]
    mov rcx, [fib_n_minus_2_low]
    xor rax, rax
    call printf

    ; Print fib(1)
    mov rdi, fmt
    mov rsi, [fib_n_minus_1_high]
    mov rdx, [fib_n_minus_1_mid]
    mov rcx, [fib_n_minus_1_low]
    xor rax, rax
    call printf

    ; We'll produce next 94 Fibonacci numbers (total 96)
    mov rcx, 94

fib_loop:
    ; fib_n = fib_n_minus_1 + fib_n_minus_2 (96-bit addition)

    ; Load fib_n_minus_1 parts
    mov rax, [fib_n_minus_1_low]
    mov rbx, [fib_n_minus_1_mid]
    mov rdx, [fib_n_minus_1_high]

    ; Add fib_n_minus_2_low
    add rax, [fib_n_minus_2_low]
    ; Add fib_n_minus_2_mid with carry
    adc rbx, [fib_n_minus_2_mid]
    ; Add fib_n_minus_2_high with carry
    adc rdx, [fib_n_minus_2_high]

    ; Store fib_n
    mov [fib_n_low], rax
    mov [fib_n_mid], rbx
    mov [fib_n_high], rdx

    ; Print fib_n
    mov rdi, fmt
    mov rsi, rdx
    mov rdx, rbx
    mov rcx, rax
    xor rax, rax
    call printf

    ; Move fib_n_minus_1 to fib_n_minus_2
    mov rax, [fib_n_minus_1_low]
    mov rbx, [fib_n_minus_1_mid]
    mov rdx, [fib_n_minus_1_high]
    mov [fib_n_minus_2_low], rax
    mov [fib_n_minus_2_mid], rbx
    mov [fib_n_minus_2_high], rdx

    ; Move fib_n to fib_n_minus_1
    mov rax, [fib_n_low]
    mov rbx, [fib_n_mid]
    mov rdx, [fib_n_high]
    mov [fib_n_minus_1_low], rax
    mov [fib_n_minus_1_mid], rbx
    mov [fib_n_minus_1_high], rdx

    loop fib_loop

    ; Return 0
    mov eax, 0
    ret       
 

 

Bien sur les compagnie D'I.A. promette d'engagé plus de 8000 autres travailleurs, mais est-ce vraiment des travailleurs qui sont nécessaire. Noté que même avec l'effort de Karl Malenfant de ne pas atteindre son but à engagé plus de travailleur, mais n'est jamais  vraiment sortis la solution. À mon avis Kurt Cobain est plus réaliste en citant dans 2001 Space Odyssey, incluant un X-IA qui à créer HAL est aussi problématique de ce qu'il est en train de ce créer. Un HAL qui ment à sa façon et cherche probablement Julia.

 

 


Posts les plus consultés de ce blog

Les Juges de la cour Sûprème qualifient les tarifs de Trump illégaux, prochaine étape rendre ma communication ACN avec Trump disponible.

 C`est un gros titre et pourtant la prochaine étapes est bel et bien de parler des tarifs illégaux de Donald Trump. N'étant pas visé par l'Acier, bois et aluminium il reste les terres rares et les semi-conducteurs qui sont au cœur de la réalité informatique, la mémoire les disques dure à base de semi-conducteur et mieux encore ce que cache le terme "I'm covering it", dans une discussion avec Donald Trump et l'état des terres rares dans la vie des médias. Il y a la fibre optique hybride de Vidéotron qui contient, Oxide de gallium sour forme de vitre tel la tourmalines et sont pouvoir ionisant et le substrat samarium sur dopage d'étain ou zinc et autres métaux qui ne recouvre pas l'Or. Cette technologie européenne couvrant la technologie DOCSIS. J'étais au centre d'un artifice de support technique multi protocole et favorisé avec Bell, "A.C.N" Canada était un lien avec les Américains de Wasington, mais laissait toutes les technologies d...

I am developper and Network Administrator and I respond to does Won’t Teach to theirs Kids to Code.

 And not yet music composer. But I made A.T.R. with Netracker in the 1990, and i am satisfied to say it's also programming while as simple reality to result it's whats sound producing from this MIDI translation of music sample into note. It's not because it take 20 years to achieve another part of a dream consist to understand code being sound plugin where some L.A.D.S.P.A. teach me howto drive the information and eventually re-create the plugin that turn the electricity down but from plugins activity. But I can say, my case involving having and partner that did the homework job in database to complete code where in a script alike Perl and I did learn from my same example I am showing online and about to expose because the first part is done. In fact it's having the plenty design and the code for 25 year in head since I did this homework in 1999-2000. The worst, I can give demonstration of a complex problem in users need, to have a system that does everything, and some ...

And Madness around !

 Like Pauline Marois we do share problematic interaction with recidivist activities of well known descendant of 'Mad House' resident of Taylor effort ... The one who provide the money to Tesla to make itself great as well, and itself so fortunate to turn into madness, Taylor story at Bareau will eventually tell more but historical truth is the mean. Recidivist of quasi lethal action where expert confirm illness into mental illness are falling apart and sometime forgeted. That's also the family story to let forget and people pretend to make apart. But it's expert case against civil-hand signature to retrieve them temporary. In case of harassing people for specific reason like for Pauline Marois case for hate against women at the power. So you do get the point why a WOMEN WITH ALL THE MONEY AT THE POWER can only bring another recidivist doing the same. I do stay in medical problem avoiding myself seiing myself as LBGTQ2+ because it madness initiated fault of my father bel...