Rainbowheart - ultimele 7 pagini

  • Formula calcul numere prime varianta 2

    22-Nov-2022 18:36 - 32 vizionari

    Continuare la Formula calcul numere prime.

    Se pare ca Python 3 in varianta mai noua foloseste calcule cu numere intregi in precizie arbitrara (precizie infinita) adica stocarea numerelor nu e limitata la 32-64-128 biti.

    Am reusit in Python sa cresc un pic numarul de numere prime generate.

    Functia originala este prime1(), iar functia imbunatatita de mine este prime2():

    
    #!/bin/env python3
    
    #
    # https://www.youtube.com/watch?v=j5s0h42GfvM
    #
    
    import math
    import time
    import sys
    from functools import cache
    
    @cache
    def factorial(n):
        return 1 if n <= 1 else n * factorial(n-1)
    
    def prime1(n):
        return 1 + sum([
            math.floor(pow(n/sum([
                math.floor(pow(math.cos(math.pi * (math.factorial(j - 1) + 1)/j), 2))
                for j in range(1, i+1)
            ]), 1/n))
            for i in range(1, pow(2, n)+1)
        ])
    
    def prime2(n):
        sum1 = 0
        for i in range(1, 1+pow(2, n)):
            if i % 100:
                print(f'Test {i} \r', end='')
            #sys.stdout.flush()
            sum2 = 0
            for j in range(1, i+1):
                f = factorial(j - 1) + 1
                # f = math.factorial(j - 1) + 1
                if (f // j) * j == f:
                    sum2 += 1
            v = pow(n/sum2, 1/n)
            if v>=1:
                sum1 += 1
        return 1 + sum1
    
    def main():
        print('Calcul 1')
        n = 1
        while True:
            start = time.time()
            try:
                v = prime1(n)
            except Exception as e:
                print(e)
                break
            end = time.time()
            print(f'Prime #{n} = {v} - {end-start:.2f} sec')
            n += 1
        print()
        print('Calcul 2')
        n = 1
        while True:
            start = time.time()
            v = prime2(n)
            end = time.time()
            print(f'Prime #{n} = {v} - {end-start:.2f} sec')
            n += 1
    
    if __name__ == "__main__":
        main()
    
    
    

    Cu prime1() se determina primele 7 numere prime, iar functia are un bug (python are un bug) la rotunjirea facuta de math.floor().

    Dar cu prime2() se obtin in cateva secunde primele 10 numere prime si lista e identica cu o alta lista gasita pe Internet, dar dupa acea nu apar erori, dar afisarea rezultatelor se face din ce in ce mai rar pentru ca numarul de calcule efectuate creste exponential si numerele prime sunt din ce in ce mai rare.

    Functia prime2() afiseaza pe ecran ce pozitie testeaza, ultiumul numar prim afisat repede este 31, ca sa afiseze 37 (urmatorul numar prim) trebuie sa ajunga cu teste la pozitia 2 la puterea 12 (37 este al 12-lea numar prim) = 212 = 4096 si este tare, tare greu pentru python, iar pypy testat de mine nu merge ca nu are functools.

    Nefolosind cache din functools si apeland  math.factorial, merge si cu pypy, dar merge un pic mai repede decat Python, curios, pentru ca pypy accelereaza executia programelor Python de 2-20 de ori!

    Python gaseste numarul 31 ca fiind prim in 30.6 secunde, iar pypy il gaseste in 21.1 secunde, apoi pypy gaseste pe 37 in 239.5 sec, …

    Dar algoritmul este foarte lent, formula este impractica.

    Un program simplu de cautare prime:

    
        n = 1
        start = time.time()
        while True:
            n += 1
            if 0 == n % 2:
                continue
            flag = True
            for i in range(3, n//2, 2):
                if 0 == n % i:
                    flag = False
                    break
            if flag:
                end = time.time()
                print(f'{n} - {end-start:.2f} sec')
            if n > 1000:
                break
    
    
    

    gaseste lejer numerele prime sub 1000 in zero secunde, si sub 10000 in 0.04 secunde.


  • Imagini generate de AI din descriere text

    14-Nov-2022 18:09 - 87 vizionari - 2 comentarii

    Cu cateva luni in urma, fara sa fiu super impresionat (pentru ca nu am scris pe blog), am testat cum sa generezi imagini din descriere text, folosind dalle-flow. Interesant este ca solutia folosea Stable Diffusion, dar genera numai imagini de rezolutie mica (cel mult 300x300) si la rezolutii mai mari aparea eroarea “CUDA out of memory”.

    Dar de cateva zile ma joc cu superbul Stable Diffusion UI, o colectie de programe care automat aduce, instaleaza si porneste un mic server local (merge si fara conexiune la Internet) cu interfata web, care permite generarea de imagini de inalta rezolutie in 1-2 minute (pe CPU i7 cu Nvidia RTX 3060 Laptop GPU).

    Nu numai din text: este posibil sa generezi o imagine plecand de la alta imagine si alegand optiunea sa genereze imagini asemanatoare.

    Cateva imagini generate plecand de la pictura “1907” a lui Octav Bancila:

    Plecand de la originalul gasit undeva pe Internet a picturii “1907” si redimensionat si prelucrat de AI sa fie de 2048x3072:

    initial-portrait__male_peasant__old__running__grass__blood_AAGNx8as_GFPGANv1.3_RealESRGAN_x4plus

    Am generat cateva imagini asemanatoare, tot de 2048x3072, folosind formula: portrait, male peasant, old, running, grass, blood, dirt, white dirty shirt, soldiers on background, cinematic lighting, 4k, oil canvas paint.

    portrait__male_peasant__old__running__grass__blood_AAGNx8us_GFPGANv1.3_RealESRGAN_x4plus portrait__male_peasant__old__running__grass__blood_AAGNx88Q_GFPGANv1.3_RealESRGAN_x4plus portrait__male_peasant__old__running__grass__blood_AAGNx9cA_GFPGANv1.3_RealESRGAN_x4plus portrait__male_peasant__old__running__grass__blood_AAGNx9ew_GFPGANv1.3_RealESRGAN_x4plus portrait__male_peasant__old__running__grass__blood_AAGNx9gI_GFPGANv1.3_RealESRGAN_x4plus portrait__male_peasant__old__running__grass__blood_AAGNx9hk_GFPGANv1.3_RealESRGAN_x4plus

    Pentru ca palmele nu sunt redate fidel in original si imaginile generate sufera de aceeasi problema, dar pictura in ulei justifica nereprezentarea corecta.

    Dar am generat si o serie de femei in varsta folosind aceeasi imagine de plecare si cu formula: portrait, female peasant, old, running, grass, blood, dirt, white dirty shirt, forest on background, cinematic lighting, 4k, oil canvas paint.

    portrait__female_peasant__old__running__grass__blo_AAGNx9sM_GFPGANv1.3_RealESRGAN_x4plus portrait__female_peasant__old__running__grass__blo_AAGNx9y8_GFPGANv1.3_RealESRGAN_x4plus portrait__female_peasant__old__running__grass__blo_AAGNx928_GFPGANv1.3_RealESRGAN_x4plus portrait__female_peasant__old__running__grass__blo_AAGNx97Y_GFPGANv1.3_RealESRGAN_x4plus portrait__female_peasant__old__running__grass__blo_AAAGNxEg_GFPGANv1.3_RealESRGAN_x4plus portrait__female_peasant__old__running__grass__blo_AAAGNxIg_GFPGANv1.3_RealESRGAN_x4plus

    Si, de ce nu, femei tinere pictate in acelasi stil cu formula: portrait, female peasant, young, running, grass, blood, dirt, white dirty shirt, forest on background, cinematic lighting, 4k, oil canvas paint.

    portrait__female_peasant__young__running__grass__b_AAAGNx1g_GFPGANv1.3_RealESRGAN_x4plus portrait__female_peasant__young__running__grass__b_AAAGNxHY_GFPGANv1.3_RealESRGAN_x4plus portrait__female_peasant__young__running__grass__b_AAAGNxOU_GFPGANv1.3_RealESRGAN_x4plus portrait__female_peasant__young__running__grass__b_AAGNyABo_GFPGANv1.3_RealESRGAN_x4plus portrait__female_peasant__young__running__grass__b_AAGNyAsQ_GFPGANv1.3_RealESRGAN_x4plus portrait__female_peasant__young__running__grass__b_AAGNyA18_GFPGANv1.3_RealESRGAN_x4plus portrait__female_peasant__young__running__grass__b_AAGNyA3U_GFPGANv1.3_RealESRGAN_x4plus portrait__female_peasant__young__running__grass__b_AAGNyBDM_GFPGANv1.3_RealESRGAN_x4plus

    Mai mult de 75% din imaginile generate le-am sters pentru ca omul fie nu era incadrat bine, fie aparea de doua ori, fie mainile sau picioarele sau fata nu erau reprezentate realist, majoritatea imaginilor au iesit perfect din 25 de pasi (un minut-doua durata de generare), programul permitatnd cel mult 100 de pasi (cateva minute) dupa care dadea eroare de alocare memorie CUDA. Dar anumite imagini nici dupa 80 de pasi nu aratau bine si le-am sters.

    Initial am generat scene complexe de batalie (din intamplare, pentru ca modelul nu respecta intotdeauna descrierea text) si portrete de mari razboinici dupa imaginea lui Vlad Tepes (Vlad the Impaler)  pentru ca e singurul personaj istoric romanesc pe care l-am gasit sa il cunoasca Stable Difussion, folosind: color image, forest, Vlad The Impaler, portrait, soldiers, torches, swords, finely detailed armor, silver brass armor, intricate design, cinematic:

    color_image__forest__Vlad_The_Impaler__portrait__s_AAAGNqtE_GFPGANv1.3_RealESRGAN_x4plus color_image__forest__Vlad_The_Impaler__portrait__s_AAGNqtbk_GFPGANv1.3_RealESRGAN_x4plus color_image__forest__Vlad_The_Impaler__portrait__s_AAGNqpHw_GFPGANv1.3_RealESRGAN_x4plus

    Acum am observat mici imperfectiuni la toate imaginile generate, cand le privesti la rezolutia nativa, dar trebuie iertate pentru ca imaginile au fost generate in medie in 1.5 minute si fara sa mai fie prelucrate ulterior.

    Concluzia:

    Programul AI, format din cel putin 3 modele AI (prelucrare text, generare imagine, validare imagine) genereaza imaginii aleatoriu plecand de la zgomot (in varianta imagine generata din descriere text) sau plecand de la o imagine existenta, peste care aplica variatiuni in procesul de generare.

    Imaginile generate sunt inspirate de imaginile folosite in procesul de invatare model AI, peste care se aplica o usoara variatie, rezultand ceva diversitate (am observat ca fetele generate se cam repetau).

    Deja exista modele AI care genereaza modeul 3D (nu doar o imagine) pregatit gata sa fie importat intr-un joc si chiar sa produca filme pe baza descrierii text, dar asta presupune multa memorie video (24-32 giga?) si eu am doar 6 giga pe laptop.

    Arta a fost cucerita de AI.


  • Formula calcul numere prime

    08-Nov-2022 13:06 - 76 vizionari

    Incredibil, dar in 1964 un autor necunoscut (C.P. Willans) a publicat o formula de calculare a numerelor prime:

    Dar formula este impractica dupa ce se genereaza primele 7 numere datorita metodei de reprezentare a numerelor in calculator.

    Interesante sunt genialitatea formulei si explicarea algoritmului folosit.

    Desi nu are legatura cu numere prime, calculul seriei Fibonacci se opreste dupa al 92-lea numar pentru intregi pe 64 biti si dupa al 185-lea numar pentru intregi pe 128 de biti, datorita depasirii valorii maxime a numarului stocat in 64 si, respectiv, 128 de biti.

    Pentru calculul factorialului (necesar in formula numerelor prime) limitarile sunt si mai dramatice,

    in 128 de biti numere intregi se poate determina cel mult factorial de 34:

    34! = 295,232,799,039,604,140,847,618,609,643,520,000,000

    pentru ca 2 la puterea 128 este

    2128 = 340,282,366,920,938,463,463,374,607,431,768,211,456

    Am testat partial calculele in limbajul Rust, pentru ca permite operatii cu intregi pe 128 de biti.

    Ca sa depasesc neajunsurile stocarii numerelor ca intregi, am trecut pe virgula mobila, dar formula lui C.P. Willans este atat de complexa, incat dupa un timp apar valori considerate de calculator ca infinit, dar tot nu puteam rezolva problema, pentru ca, desi in virgula mobila se pot folosi numere foarte mari, se pierde precizia. Desi am determinat cel mult factorialul lui 170 (ca numar real), calculul patratului de cosinus de PI a dat eroare de depasire a valorii maxime.


  • Ra, Legea lui Unu si Valul Uitarii

    15-Jun-2022 17:39 - 270 vizionari

    Un film despre misiunea pe Pamant.

    Un film care explica (prin invataturile lui Ra transmise prin channeling) de ce am uitat cine suntem si de ce am uitat de unde venim, de ce in planul fizic avem posibilitatea sa facem orice (pentru ca nu stim cine suntem cu adevarat), de ce ne putem reincarna oricand din dimensiunile superioare in planul fizic.

    Un film care nu numai ca asociaza existenta in planul fizic cu un joc de calculator (si asta ma bucura enorm ca imi confirma presupunerile) dar si explica de trebuie sa jucam amnezici.

    Nu spun mai mult pentru ca nu cunosc invataturile lui Ra si nu pot sa comentez ce nu stiu.


  • Lumina Gnosticismului: Pistis Sofia si Demiurgii

    13-Jun-2022 18:33 - 252 vizionari

    Un film ca un fel de introducere in Gnosticism.

    Se aminteste Evanghelia dupa Toma, pe care am amintit-o si eu de cateva ori in blog, mai concret: pasajul in care Iisus dezvaluie numai lui Toma cine este El cu adevarat (link) si cand ucenicii l-au rugat pe Toma sa le spuna si lor, Toma a zis: daca va spun ma omorati cu pietre (lapidare = blasfemie pentru Evrei = Iisus este Dumnezeu) si din pietrele vor iesi flacari care ii vor ucide pe ucenici.

    interesanta este referirea la Vede (zeul la care se roaga Vishnu este o forta primordiala inaccesibila  muritorilor, te omoara daca te rogi direct acelui zeu si, astfel, Vishnu este un intermediar, ca Iisus ?) si asemanarea intre Titanii (mitologia Greco-Romana) si Asura (mitologia Indului) = mitologia proto-indo-europeana ?

    Si eu m-am gandit cum ar fi sa te intorci in timp si sa observi exact ce venerau oamenii aceia.

    Asemanarea: Desene in basorelief cu un om cu coarne de cerb care mediteaza in pozitia lotus in India si un alt om cu coarne de cerb in Irlanda. In film nu s-a gasit legatura, dar eu afirm: poate e zeul Cernunnos din mitologia celtica.

    Interesanta este si referirea la Carl Jung cu arhetipurile lui cu mentiunea ca functioneaza, clasificarea dupa arhetipuri chiar obtine rezultate in terapie = archonii din Gnosticism exista si scrierile gnostice nu sunt legende.

    Arhetipurile lui Jung pot fi vazute ca programe de calculator si apar consistent in basme, mituri, vise, simboluri religioase. Vindecarea se produce cand expui arhetipurile, atunci ele nu mai au influienta asupra ta.

    Arhetipurile se activeaza cand le intalnesti si crezi in ele, povesteste Robert Price ca la un botez, desi el nu mai credea (a fost preot, dar s-a racit in credinta), in botezat s-a manifestat arhetipul.

    Grecii filozofau la impartirea materiei in atomi cu 500 de ani inainte de Cristos si acum in lume religiile Abrahamice inca mai au adepti.


  • Ce ne mai povestesc reintorsii din morti clinice

    10-Jun-2022 21:13 - 259 vizionari

    De-a lungul timpului am vazut mai multe filme cu povestiri despre reveniri din morti clinice, dar, saptamana aceasta, aceste doua filme m-au impresionat.

    Mesajul este optimist si merita impartasit.

    Din filme reiese iluzia separarii de Creator = iluzia dualitatii (Iluzia dualitatii partea 1 si Iluzia dualitatii partea 2) = suntem veniti din lumina cand ne nastem si ne intoarcem in lumina cand murim = suntem intr-o vizita temporara pe Pamant ca un fel de vacanta si Creatorul este in noi si cu noi si ne vegheaza permanent, pentru ca suntem intr-o simulare menita sa ne imbogateasca bagajul de experiente, nu de cunostinte, pentru ca in lumina (in planul spiritual) este cunoscut totul, dar in realitatea fizica creierul este limitat (biologic) si percepe timpul in mod liniar.

    Omul este o fiinta multidimensionala, dar daca in planul fizic percepe trecutul, prezentul si viitorul in mod simultan, atunci inebuneste.


  • Mituri si legende legate de Vechiul Testament

    08-Jun-2022 22:42 - 268 vizionari

    De ce mai mereu simt, scriu si zic mituri si legende: Informatiile despre zei, ingeri si demoni nu pot fi verificate.
    Pictura nu poate intelege pe Pictor si Pictorul nu are rost sa mai picteze ceva ca sa o invete pe Pictura.
    Cine sustine ca are informatii privind ordinea cereasca sa se mai gandeasca (sa mediteze) la asta, pentru ca nu e treaba nostra unde sunt zeii sau ingerii si in ce ierarhie vietuiesc.

    Asta consider eu legende: povesti depre Zeii Hindusilor, Zeii Asiaticilor, Zeii Amerindienilor, Zeii Egiptenilor, Zeii Sumerienilor, Zeii Bibliei, Zeii Grecilor, Zeii Romanilor, …

    In film se mentioneaza ca primul zeu a creat mai multi zei si apoi i-a numit ingeri.

    Zeul Bibliei nu este primul zeu, este mai pe la mijloc si din cauza asta sunt tot felul de conflicte intre zei si zei si intre zei si oameni.

    Observ potriviri de nume, unele intemeiate, altele exagerate, dar sigur exista o baza comuna a Zeilor, o corelatie intre zeii tuturor popoarelor.

    Aberatia din capitolul 2 al Genezei ca Eva a fost facuta dintr-o coasta a lui Adam este gasita si la o legenda Sumeriana. Este o aberatie pentru ca in capitolul 1 al Genezei, Creatorul faureste simultan pe barbat si femeie. Interesant este ca in capitolul 1 al Genezei nici nu e mentionat YHWH, sunt amintiti numai El si Elohim.

    Stiam ca Astarte sau Aseroth este nevasta lui YHWH.

    Monoteismul este o utopie: exista multi zei mentionati in legende si, in Vechiul Testament, Evreii au avut permanent probleme pentru ca venerau alti zei decat cel care sugereaza Biblia ca trebuie.

    Probabil legendele despre Zei sunt fabricate de aceeasi sursa (reptilienii ?) ca sa zadarniceasca progresul spiritual al omenirii, dar constientizand ca realitatea este simulata, ierti si uiti si progresezi ridicandu-ti nivelul vibrational.

    Cand nivelul vibrational, energia spirituala, depaseste un anumit nivel, reptilienii (sau fiintele multidimensionale care se delecteaza cu emotiile negative ale omenirii) nu se mai pot hrani si omul devine liber.

    Matrixul este creat de demiurgi, reptilieni sau paraziti spirituali si incearca sa mentina o stare de frica, groaza, ignoranta si necunoscut.


Ultimele pagini: RSS

Alte adrese de Internet

Categorii

Istoric


Atentie: Continutul acestui server reprezinta ideile mele si acestea pot fi gresite.