I numeri quadrati scritti in binario sono una lingua normale?


8

Sto riscontrando problemi nel tentativo di determinare se tutti i numeri quadrati (1, 4, 9, 16, ...) scritti in forma binaria (1, 100, 1001, ...) sono un linguaggio normale.

Dopo alcuni tentativi di trovare un modello comune di quei numeri, ho scoperto che per qualsiasi numero quadrato n2, n2mod4equivale a 0 o 1, quindi sono in grado di tracciare un grafico DFA con 4 stati per riconoscere questa lingua. Ma a quanto pare, il DFA che ho disegnato in realtà riconosce un superset del linguaggio dei numeri quadrati in questione. Sono bloccato qui.

Qualcuno potrebbe darmi qualche indizio su questo problema? Se non è un linguaggio normale, come dovrei provarlo?

Sono anche molto interessato a sapere come dovrei affrontare questo tipo di domanda nel modo migliore in futuro. So che in molti casi, se abbiamo l'intuizione che gli automi devono tenere traccia di ciò che è già stato visto (comeaibi), quindi sono necessari stati indeterminati per il calcolo degli automi, quindi non è finito o regolare. Possiamo quindi usare il lemma del pompaggio per dimostrare che non è regolare. Tuttavia, non riesco a capire se questa lingua è ancora regolare, quindi non ho davvero idea di cosa fare dopo.

Grazie!


Certamente non è sufficiente verificare se il tuo input è congruente 0 o 1 mod 4, poiché, ad esempio, ma non è un quadrato. La mia ipotesi è che la lingua non sia regolare, poiché sembra che tu debba ricordare l'intero input per sapere se è un quadrato o no (questa è solo un'intuizione e niente come una prova). 51mod45
David Richerby,

1
La parte "approcci generali" della tua domanda è coperta dalle nostre domande di riferimento .
David Richerby,

@DavidRicherby Quelli sono molto generali. Non credo che abbiamo avuto la generalizzazione di questa particolare domanda a insiemi definiti precedentemente dall'aritmetica .
Gilles 'SO- smetti di essere malvagio' il

Risposte:


9

Ecco una soluzione high-tech. Indichiamo la lingua da . Szalay ha mostrato che Da qui è abbastanza facile dimostrare che non è regolare, riducendo a .L

L10101={10n10n+21:n0}{110001,1000010001}.
L{anbn:n0}

"riduzione da"?
Omar,

È un termine informale, mediante riduzione all'irregolarità nota di . anbn
Yuval Filmus,

2

Bene, questa è la terza volta che riscrivo questa risposta. L'utente Yuval Filmus ha segnalato due errori molto sciocchi che ho fatto nelle due versioni precedenti.

Bene, ho finalmente trovato una soluzione semplice al problema. Penso che funzioni

Per prima cosa abbiamo queste parole di questo tipo:

1(00)p1(00)p001

Sono numeri quadrati.

Prova:

Ho cercato informazioni sui numeri quadrati e poi ho scoperto i "numeri ottagonali centrati" che sono numeri formati da strati di multipli di otto, ma non dal primo livello. Il primo strato è uno, il secondo otto, il terzo sedici e così via.

Quindi ogni strato ha un "otto" in più rispetto al precedente. Il numero di otto in un numero ottagonale centrato può essere calcolato usando la formula di gauss:

n2+n2

Quindi moltiplichiamo per otto e ne aggiungiamo uno, questo perché il primo livello è solo un punto.

8(n2+n)2+1

Simplyfying:

4(n2+n)+1

Quella formula ci dà i numeri quadrati dispari per ogni n.

Calcolerò la formula per il numero quattro e tutti i poteri di quattro.

Per prima cosa quadriamo il numero, questo semplicemente raddoppia gli zero del numero. Quindi aggiungiamo il numero al prodotto. Questo mette un "uno" in posizione partire da destra. è la lunghezza della parola binaria.|n|/2|n|

In questo momento abbiamo parole di questo modulo:

1(00)p1(00)p0

Moltiplichiamo per quattro, questo aggiunge semplicemente due zero alla fine del numero. Infine ne sommiamo uno. Abbiamo chiuso.

Pumping

Ho impostato .i=0

Innanzitutto il caso semplice

Se lasciamo vuoto, prendiamo il numero uno e uno o più zero. Questo ci dà parole con un peso di martellamento due (il numero di quelli è due). C'è solo un numero irregolare con il peso di martellamento due, il numero nove (l'unico numero quadrato dispari della forma 2n + 1 è 9, l'ho visto su Wikipedia: vedi qui ). Poiché tutti i numeri che stiamo pompando sono più grandi di nove, abbiamo dimostrato questo caso.x

Custodia rigida

Lasciamo il primo "uno" al suo posto e eliminiamo solo gli zeri. Possiamo eliminare fino a zero .p1

La parola sarà simile a questa:

10(00)m1(00)n001 .

Dove e sono numeri interi più grandi o uguali a uno emnn>m

In primo luogo crederò che il numero ottenuto sia un quadrato, quindi mostrerò che è falso:

Poiché sappiamo che tutti i numeri quadrati dispari possiamo ottenere con questa formula:

4(n2+n)+1

Iniziamo a scomporre il numero, ne sottraggiamo uno, questo semplice imposta l'ultimo a zero e poi, dividiamo per quattro, questo rimuove due zero alla fine della parola binaria.

Quindi avremo parole come questa:

10(00)m1(00)n0 , e sono numeri interi più grandi o uguali a uno e . Queste parole sono un prefisso della parola completa.nmn>m

Poiché crediamo che questa catena faccia parte di un numero quadrato, la parola doveva essere formata facendo questa formula:

(n2+n)

n riesco a essere ancora

Vedremo di nuovo questa formula:

n2+n

Poiché crediamo che le parole che abbiamo pompato siano numeri quadrati. Chiamiamo le parole che abbiamo pompato abbiamo che:m

m=n2+n

Inoltre, abbiamo che può essere rappresentato come la somma di due numeri binari, e , ognuno dei quali ha una potenza di due. E abbiamo quello emm1m2m1<m2m1>m2

La prima cosa che notiamo è che deve essere inferiore a . Questo perché è più grande della radice quadrata di , se era uguale a , allora sarà più grande di .nm2m2m1nm2n2m

Ora, quando quadriamo un numero binario pari, abbiamo che il numero al quadrato ha "più zero" a destra del primo "uno" rispetto al numero originale. Quindi "quello più a destra" all'interno di è alla sinistra di "quello più a destra" all'interno di . Se aggiungiamo a , abbiamo che "quello più a destra" all'interno di è il "più a destra" in . Poiché è più piccolo di . Abbiamo che il "più a destra" all'interno di è alla destra di "quello più a destra" in . Pertanto .n2nnn2n2+nnnm2n2+nmmn2+nn2+n=mabbiamo raggiunto una contraddizione, e quindi ostacolo ci sia ancora.n

n riesco a essere irregolare

Ancora una volta, abbiamo che è un numero creato aggiungendo a , quindimnn2m=n2+n

Quindi notiamo che ; Questo è perché:(n+1)2(n+1)=n2+n

(n+1)2(n+1)=n2+2n+1n1 ;

E poi:

(n+1)2(n+1)=n2+n .

Un altro modo di vedere questo è immaginare come un quadrato con lati di lunghezza . Questo quadrato è formato da quadrati più piccoli di taglia uno. Quindi, quando aggiungiamo quadrati di dimensione 1 al quadrato precedente, il quadrato precedente ora è un rettangolo i cui lati sono e . Ora, possiamo immaginare come un altro quadrato con lati di lunghezza . Questo quadrato è anche formato da quadrati più piccoli di taglia uno. Se rimuoviamo quadrati, abbiamo un rettangolo di lati e .n2nnnn+1(n+1)2n+1n+1nn+1

Abbiamo che è un numero pari e la prova segue lo stesso di prima per tutti i numeri dispari inferiore an+1nm21

Ancora una volta, quando quadriamo un numero binario pari, abbiamo che il numero ha "più zero" a destra del primo "uno" rispetto al numero originale. Quindi "quello più a destra" all'interno è alla sinistra di "quello più a destra" all'interno di . Se sottraiamo da a , abbiamo che il "più a destra" all'interno di è il "più a destra" in . Poiché è più piccolo di . Abbiamo che il "più a destra" all'interno di è alla destra di "quello più a destra" in .(n+1)2n+1n+1(n+1)2n2+nn+1n+1m2n2+nm

Se .n=m21

Ancora una volta, abbiamo che . Poiché ( quadrato) è un numero che è una potenza di due, ha solo un singolo "uno" iniziale e quindi zero. Quando a , stiamo trasformando tutti gli zeri a sinistra della cifra più a sinistra di all'interno di in "uno" e il numero risultante non è come le parole che stiamo pompando, ci dovrebbe essere almeno un "zero di separazione" tra quelli.n2+n=(n+1)2(n+1)m22m2m2m22m2m22

Pertanto . Ma dal momento che abbiamo detto che abbiamo raggiunto una contraddizione e quindi non può essere irregolare.mn2+nn2+n=mn

Dato che non può essere uniforme o irregolare, abbiamo che non esiste come numero intero. Pertanto le parole che abbiamo pompato non sono il prodotto della formula per numeri quadrati dispari. Dal momento che tutte le parole che stiamo pompando sono strane, non possono essere numeri quadrati.nn


1
Non puoi applicare il lemma di pompaggio a per mostrare che la tua lingua non è regolare, poiché può essere pompato. Lo stesso vale per nella lingua inversa. 1(00)p1(00)p (00)p1
Yuval Filmus,

Non puoi scegliere nel lemma di pompaggio. Il lemma di pompaggio afferma soltanto che alcuni opere. Per dimostrare che la lingua non è regolare, devi dimostrare che no funziona. y y y
Yuval Filmus,

@yuvalFilmus Hai ragione
Rotia,

2
Affermate che un numero pari rimane anche dopo la divisione per 2, ma non è sempre così.
Yuval Filmus,

2
Ho notato che hai apportato circa 15 modifiche negli ultimi 2 giorni. È bello che tu voglia migliorare la tua risposta, e mi piacerebbe vederti continuare a farlo. Tuttavia, potrebbe essere un po 'ingiusto ad altre domande continuare a sbatterlo in cima alla prima pagina ogni volta che modifichi qui. Pensi che potresti essere in grado di raggruppare le tue modifiche (magari scrivendole offline, ad esempio con stackedit.com) in modo da apportare solo poche modifiche al giorno? Non voglio scoraggiarti dal modificare la tua risposta per migliorarla, ma mi chiedo se potrebbe esserci qualche mezzo felice possibile. Grazie per aver ascoltato!
DW
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.