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

What are you doing here, another one ?

 Yeah, that's another one piece of Intel Corporation. Not in is box, already plugged somewhere. And now it's not sold with a board and not only wrap into a bubble bag. It come with the plastic box, and at least.    At 5.59$CA, if one of my board ares misconfiguration and lacking BIOS update to support higher than 10 Mb of memory, for family e5 2650v4 with 10 core rather than 14 and less than 20 Mb of L3 cache and will probably report only 60% of the memory is inaccessible rather than yelling for 66% of the memory if this one calculate the L3 memory as internal memory error for being unable to count the edge. Yes it's true an e5-2650 own 30Mb of L3 cache while the e5-2630 own 25 Mb. Ok it's not also the theoretical 2 cores in less. I seriously believe the second one will fail, for not having around 6 to 8 core and up to 15 Mb of memory on L3 cache. But apparently there is so many option withing the bios it let you disable the core. And mean I do request to investigate fo...

South Park Season 6 episode 8, Getting entry from everywhere, and talk that purge.

 Inside Red Hot Catholic love: Mostly engaged in a quest with old paper that compromise Vatican, we can empirically see the spider invade the Vatican as web that is origin of the sin and may compromise a story long of a big king willing to eat whole religion itself and there is drawn a idea the king will someday enter in the Vatican to invade it. But it's not the detailed reason, two other sub-talk from parent and delegation of believe do something strange among South Park resident.   Starting at the seventh minutes where Cartman challenge everyone. He not only winning but  got a slang talk to inherit from a strange symptoms against talk .     And manifestation of that symptoms lets people refluxing theirs 'expelation' back from the exit to normal way we are using to eat or express themselves.   We call it intro-digestion symptoms and beware of what you are doing it take you by surprise.  Accordingly to Stan report or Cartman slang to get a pooh out of...

Does George Santos have receive money from Honest Gill.

 Back to five point of Honest Gill was :  76% of Americans say their representatives do a very bad job of listening to them. We used to aim big in this country – what happened? I’ll work hard to make sure 100% of Americans feel unrepresented.  I’ll make elections more representative for people who pay me. Ranked Choice Voting would disenfranchise campaign mega-donors and carelessly empower everyday Americans who don’t understand the wants and needs of the fundraising class. I’ll strengthen partisan gerry mandering. It’s better that politicians choose their voters, not the other way around, right ? Lobbyists spend $4 million per member of Congress. How are us poor Congress Members supposed to live on chump change? I pledge to continue to take gobs of cash from unscrupulous lobbyists. Just 4% of U.S. adults say the political system is working extremely or very well. Honest Gil will do his gosh darndest to get that number down to 0%.   To point 1, Honest Gil wi...