Coloriamo \( \{1,2,\ldots,26\} \)

Messaggioda 3m0o » 24/03/2023, 23:25

Una versione equivalente al Teorema di Van der Waerden afferma che

Dati \(m,k \in \mathbb{N} \), esiste \(N=N(m,k) \) tale che se coloriamo l'insieme \(\{1,2,\ldots,N\}\) usando al più \(m\) colori, allora esiste una progressione aritmetica di lunghezza \(k\) in \( \{1,\ldots,N\}\) che è monocromatica.


E' noto che \(N(3,3)=27\), d'altra parte esistono 48 colorazioni distinte del insieme \(\{1,2,\ldots,26\}\) usando \(3\) colori senza una progressione aritmetica di lunghezza \(3\) monocromatica.

Riuscite a trovarle?

NB: Una progressione aritmetica di lunghezza \(k\) è una progressione aritmetica \(a j + b \) con \(1 \leq j \leq k \), e \(a,b \in \mathbb{N}\).
3m0o
Cannot live without
Cannot live without
 
Messaggio: 2794 di 5335
Iscritto il: 02/01/2018, 15:00

Re: Coloriamo \( \{1,2,\ldots,26\} \)

Messaggioda Quinzio » 03/04/2023, 16:47

Testo nascosto, fai click qui per vederlo
Trovarle a mano no, anche se non e' impossibile.

L'ho preso piu' come un esercizietto di programmazione che altro.
Qui ci sono le soluzioni e piu' sotto il codice VBA per Excel.

Codice:
1 1 2 2 1 1 2 3 2 3 3 1 3 1 1 2 1 2 2 3 1 3 3 2 3 2
1 1 2 2 3 1 1 3 1 3 2 2 3 3 2 2 3 1 3 1 1 3 2 2 1 1
1 1 2 3 2 1 1 3 1 3 2 2 3 3 2 2 3 1 3 1 1 2 3 2 1 1
1 1 3 2 3 1 1 2 1 2 3 3 2 2 3 3 2 1 2 1 1 3 2 3 1 1
1 1 3 3 1 1 3 2 3 2 2 1 2 1 1 3 1 3 3 2 1 2 2 3 2 3
1 1 3 3 2 1 1 2 1 2 3 3 2 2 3 3 2 1 2 1 1 2 3 3 1 1
1 2 1 1 2 1 2 3 3 2 2 3 3 2 1 2 1 1 2 3 3 1 1 3 1 3
1 2 1 2 2 1 1 3 2 2 3 2 3 1 1 3 3 1 1 3 2 3 2 2 3 1
1 2 1 2 2 1 1 3 2 2 3 2 3 1 1 3 3 1 1 3 2 3 2 2 3 2
1 2 1 2 2 3 2 1 1 3 1 3 3 2 3 2 2 1 2 1 3 3 1 1 3 3
1 2 3 3 2 3 2 1 1 2 2 1 1 2 3 2 3 3 2 1 1 3 3 1 3 1
1 3 1 1 3 1 3 2 2 3 3 2 2 3 1 3 1 1 3 2 2 1 1 2 1 2
1 3 1 3 3 1 1 2 3 3 2 3 2 1 1 2 2 1 1 2 3 2 3 3 2 1
1 3 1 3 3 1 1 2 3 3 2 3 2 1 1 2 2 1 1 2 3 2 3 3 2 3
1 3 1 3 3 2 3 1 1 2 1 2 2 3 2 3 3 1 3 1 2 2 1 1 2 2
1 3 2 2 3 2 3 1 1 3 3 1 1 3 2 3 2 2 3 1 1 2 2 1 2 1
2 1 2 1 1 2 2 3 1 1 3 1 3 2 2 3 3 2 2 3 1 3 1 1 3 1
2 1 2 1 1 2 2 3 1 1 3 1 3 2 2 3 3 2 2 3 1 3 1 1 3 2
2 1 2 1 1 3 1 2 2 3 2 3 3 1 3 1 1 2 1 2 3 3 2 2 3 3
2 1 2 2 1 2 1 3 3 1 1 3 3 1 2 1 2 2 1 3 3 2 2 3 2 3
2 1 3 3 1 3 1 2 2 1 1 2 2 1 3 1 3 3 1 2 2 3 3 2 3 2
2 2 1 1 2 2 1 3 1 3 3 2 3 2 2 1 2 1 1 3 2 3 3 1 3 1
2 2 1 1 3 2 2 3 2 3 1 1 3 3 1 1 3 2 3 2 2 3 1 1 2 2
2 2 1 3 1 2 2 3 2 3 1 1 3 3 1 1 3 2 3 2 2 1 3 1 2 2
2 2 3 1 3 2 2 1 2 1 3 3 1 1 3 3 1 2 1 2 2 3 1 3 2 2
2 2 3 3 1 2 2 1 2 1 3 3 1 1 3 3 1 2 1 2 2 1 3 3 2 2
2 2 3 3 2 2 3 1 3 1 1 2 1 2 2 3 2 3 3 1 2 1 1 3 1 3
2 3 1 1 3 1 3 2 2 3 3 2 2 3 1 3 1 1 3 2 2 1 1 2 1 2
2 3 2 2 3 2 3 1 1 3 3 1 1 3 2 3 2 2 3 1 1 2 2 1 2 1
2 3 2 3 3 1 3 2 2 1 2 1 1 3 1 3 3 2 3 2 1 1 2 2 1 1
2 3 2 3 3 2 2 1 3 3 1 3 1 2 2 1 1 2 2 1 3 1 3 3 1 2
2 3 2 3 3 2 2 1 3 3 1 3 1 2 2 1 1 2 2 1 3 1 3 3 1 3
3 1 2 2 1 2 1 3 3 1 1 3 3 1 2 1 2 2 1 3 3 2 2 3 2 3
3 1 3 1 1 2 1 3 3 2 3 2 2 1 2 1 1 3 1 3 2 2 3 3 2 2
3 1 3 1 1 3 3 2 1 1 2 1 2 3 3 2 2 3 3 2 1 2 1 1 2 1
3 1 3 1 1 3 3 2 1 1 2 1 2 3 3 2 2 3 3 2 1 2 1 1 2 3
3 1 3 3 1 3 1 2 2 1 1 2 2 1 3 1 3 3 1 2 2 3 3 2 3 2
3 2 1 1 2 1 2 3 3 2 2 3 3 2 1 2 1 1 2 3 3 1 1 3 1 3
3 2 3 2 2 1 2 3 3 1 3 1 1 2 1 2 2 3 2 3 1 1 3 3 1 1
3 2 3 2 2 3 3 1 2 2 1 2 1 3 3 1 1 3 3 1 2 1 2 2 1 2
3 2 3 2 2 3 3 1 2 2 1 2 1 3 3 1 1 3 3 1 2 1 2 2 1 3
3 2 3 3 2 3 2 1 1 2 2 1 1 2 3 2 3 3 2 1 1 3 3 1 3 1
3 3 1 1 2 3 3 2 3 2 1 1 2 2 1 1 2 3 2 3 3 2 1 1 3 3
3 3 1 1 3 3 1 2 1 2 2 3 2 3 3 1 3 1 1 2 3 2 2 1 2 1
3 3 1 2 1 3 3 2 3 2 1 1 2 2 1 1 2 3 2 3 3 1 2 1 3 3
3 3 2 1 2 3 3 1 3 1 2 2 1 1 2 2 1 3 1 3 3 2 1 2 3 3
3 3 2 2 1 3 3 1 3 1 2 2 1 1 2 2 1 3 1 3 3 1 2 2 3 3
3 3 2 2 3 3 2 1 2 1 1 3 1 3 3 2 3 2 2 1 3 1 1 2 1 2

Dim arr(27) As Integer
Dim bad As Boolean
Dim sol As Integer

Sub abc(n As Integer)
    For col = 1 To 3
        bad = False
        For chk = 1 To n - 1
            If (((chk + n) Mod 2) = 0) Then
                If (arr(chk) = col) And (arr((chk + n) / 2) = col) Then
                    bad = True
                End If
            End If
            If (bad = True) Then
                chk = n
            End If
        Next
        If (bad = False) Then
            arr(n) = col
            If (n = 26) Then
                For pr = 1 To 26
                    Cells(sol, pr) = arr(pr)
                Next
                sol = sol + 1
            Else
                abc (n + 1)
            End If
        End If
    Next

End Sub

Sub xyz()
    sol = 1
    bad = False
   
    abc (1)
End Sub

Quinzio
Cannot live without
Cannot live without
 
Messaggio: 5285 di 10548
Iscritto il: 24/08/2010, 06:50

Re: Coloriamo \( \{1,2,\ldots,26\} \)

Messaggioda 3m0o » 10/04/2023, 09:49

Non le ho controllate tutte ma :smt023
3m0o
Cannot live without
Cannot live without
 
Messaggio: 2802 di 5335
Iscritto il: 02/01/2018, 15:00


Torna a Giochi matematici

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite