Bibliografia funzioni inverse sequenze numeriche

di il
7 risposte

Bibliografia funzioni inverse sequenze numeriche

Buongiorno, saluto il forum,
chiedo cortesemente se poteste suggerirmi un libro che tratti la logica con cui poter costruire (ovviamente poi lo farò con la programmazione) un risolutore di sequenze numeriche o codici numerici, definite nel pattern di numeri possibili ( da 1 a m) della sequenza e nella lunghezza della sequenza (n) fissa. L'algoritmo di generazione delle sequenze cambia nel tempo ma rimane sufficientemente stabile per trovare nelle sequenze (n1) (n2) .. (nx) generate la possibilità di trovare il meccanismo di generazione composto da semplici operazioni matematiche (addizione, sottrazione, moltiplicazione) partendo da una data sequenza generata precedentemente: seme come termine dei numeri casuali, multiseme (mi si passi il termine) come sequenza.

Spero di essere riuscito a spiegarmi, vi ringrazio

7 Risposte

  • Re: Bibliografia funzioni inverse sequenze numeriche

    Te lo suggerirei se avessi capito una parola …

  • Re: Bibliografia funzioni inverse sequenze numeriche

    Ho delle sequenze di numeri interi (n1) (n2) … (nx) apparentemente generate casualmente che invece vengono generate da un algoritmo ben definito che svolge semplici operazioni aritmetiche (somma, sottrazione, moltiplicazione per semplicità) partendo da una sequenza precedente (n0). Nei numeri casuali il numero da cui vengono generati i successivi è definito seme.

    Vorrei trovare il modo, logicamente prima, e dal punto di vista della programmazione poi, di ottenere le operazioni elementari che l'algoritmo svolge durante il periodo in cui viene mantenuto costante, analizzando e processando le sequenze (ni) che trovano “corrispondenza aritmetica" con la (n0) seme. 

    Si chiamano in genere costruttori questi solutori dell'algoritmo (delle sue operazioni elementari), anche se ho usato la locuzione funzione inversa. Non è un problema di programmazione in questa fase ma di approccio al problema e volevo documentarmi.

  • Re: Bibliografia funzioni inverse sequenze numeriche

    Non credo che esistano testi specifici su questo specifico argomento.

    Essenzialmente penso che l'unico approccio sua di tipo brute Force che non fornisce comunque certezze. 

    P.S. … mi ricordi un utente di vecchi forum che aveva delle strane teorie su numeri originali e algoritmi totalmente inventati sull'argomento… ovviamente non sei tu

  • Re: Bibliografia funzioni inverse sequenze numeriche

    Forse ho capito: non e' una cosa alla portata del programmatore quadratico medio. 
    E' piu' un progetto di tesi magistrale o molto piu' probabilmente di dottorato.

    Partiamo da questo bel sito:

    https://oeis.org/

    Ora tu vorresti, ad esempio, partendo da una delle sequenze presenti nel sito, ricostruire l'algoritmo che le genera.

    Ovviamente non esiste nulla di “semplice”, anzi direi che siamo nell'abito della Computer Science teorica di livello “stratosferico”.

    Un primo approccio che mi viene in mente e' quello della “sintesi” dell'algoritmo.

    Cerca su Google Scholar 

    “algorithm synthesis”
    “program synthesis”

    Un punto di partenza puo' essere:

    https://www.researchgate.net/profile/Gerard-Meyer-2/publication/226758064_A_systematic_approach_to_the_synthesis_of_algorithms/links/59e8facba6fdccfe7fab41d4/A-systematic-approach-to-the-synthesis-of-algorithms.pdf 

    https://dl.acm.org/doi/pdf/10.1145/3618305.3623586?casa_token=Rk_Lk1ZeIw8AAAAA:KwyqdKh4EPTzhmGU5MRtsolYI2AuJPVGnscTaiaOQ-OpyY5I_Yrspm6yKuqsoPhOuwrUO70JNlM

    Un'altro approccio, ma per il quale bisogna capire se effettivamente funziona e  come applicarlo, e' quello delle “funzioni generatrici”

    https://www2.math.upenn.edu/~wilf/DownldGF.html

    Diciamo che se trovi come farlo NON SAREBBE MALE se fornissi dettagli al riguardo ;-)

    Nota: ma forse e' qualcosa di decisamente MOOLTO piu' banale. 
    Boh! Vallo a sapere ;-)

  • Re: Bibliografia funzioni inverse sequenze numeriche

    Qualsiasi sequenza ha infiniti algoritmi che la generano. Prova a ragionarci sopra sulla banale sequenza 0, 0, 0 … 0 e vedrai che è così per tutte.

    Magari puoi fare qualcosa restringendo il campo, tipo se hai una sequenza di numeri pseudo-casuali e vuoi ricostruire la formula LCG che la genera. 

  • Re: Bibliografia funzioni inverse sequenze numeriche

    @weiestrass, vero MA si possono definire delle metriche per scegliere l'algoritmo di complessita' minima.

    NON complessita' computazionale, ma complessita dell'implementazione.

    Il piu' semplice e' contare il numero di simboli usati per rappresentarlo: ad esempio il numero di caratteri.

    Possiamo supporre che l'algoritmo sia composto da DUE componenti (uso la sintassy Python giusto per comodita'):

    def init() -> list[int]:
        a0 = ...
        b0 = ...
        ...
    	return [a0,b0,...]

    che ritorna i valori iniziali (seme) della sequenza, e

    def next(pi: list[int]) -> list[int]:
        ai, bi, ... = pi
        aj = ...
        bj = ...
        return [aj,bj,...]

    ritorna la prossima lista di valori.

    Per esempio la tua sequenca potrebbe essere definita come

    def init(): return [0]
    def next(p): return [0]

    La sequenza di fibonacci come

    def init(): return [1,1]
    def next(p): 
        a, b = p
        return [b, a+b]

    I numeri naturali come

    def init(): return [0]
    def next(p): 
        i = p[0]
    	return [i+1]

    La sequenza di quadrati

    def init(): return [1,1]
    def next(p): 
        i, i2 = p
        return [i+1, (i+1)*(i+1)]
  • Re: Bibliografia funzioni inverse sequenze numeriche

    16/02/2024 - Weierstrass ha scritto:


    Magari puoi fare qualcosa restringendo il campo, tipo se hai una sequenza di numeri pseudo-casuali e vuoi ricostruire la formula LCG che la genera. 

    Questa la vedo PARECCHIO complicata se usi modulo e costante di dimensioni “ragionevoli” e NON HAI abbastanza valori nella sequenza!

    SE conosci il modulo, e' banale:

    https://math.stackexchange.com/questions/3487998/find-parameters-of-linear-congruential-generator

    ma SE non lo conosci, sono “cavoli amari” ;-)

Devi accedere o registrarti per scrivere nel forum
7 risposte