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...

Hottest Snapshoot from my ThF4_LaFe Hard-State Nuclear Holdrum

This is my ThF 4 + LaFe (α-Fe) Nuclear Holdrum ( more than quantic-one ), for it's hard-state design. It's the revealed reproduction from 1980, after seeing the images with my tiny eyes from M.Villeneuve having a snapshoot from the Psychiatric hives, or vault. It was forbidden to stole because it was not yet made at this moment... To reproduce the image on the picture, they use white paint on the Xenon tube on external side of the holdrum... In fact this is PTFE thread used and it have it's property... Ionisation from PTFE thread is mildly-helper driving photo-source like filter-to-filter of a « ridicule » quater-plate effect side of using Fluor in light filtering, while in high-energy and high velocity light it en-lighting prior to filter... In This case  it's good, we are dealing with Ultra-violet led PaInSe ( also know as Hard-state gamma-ray pulse led from Praseodymium/Indium with filter to throw down wavelength to UV region...   ). I can conclude it's 5 xeno...

My Xeon got afraid of it so it have run it out.

 Yes, there is an alternative to make Windows working. It's changing inside bios inside "CSM" section which have it and some item where left into "UEFI" and not auto-detect between "UEFI" and Legacy and does support Windows installation.    With such speed.   Belong to images it's my "DDR4 ECC" memory which are 2x 16 Gigabytes at 2133 Mhz that is actually running at 2194 Mhz, so close to processor speed which is 2.2Ghz. And it's only what is supported in overclock-ability the memory is pushed hard. Pushed at 103% of it's clock it might be the reason sometime it shut down silently or simply doing a task and shutdown. Except in Linux Min Xia installation it reboot before it end the loading of all the module. But exceptional it can last for 10 hours long formatting a Tera Byte ( out of it's 8 days of formatting ) and by using the Linux Mint installer of Xia ( which is the previous version of Linux Mint ). Apparently Virginia or W...