Data update
This commit is contained in:
parent
81fd053722
commit
52a6ef48dd
10248 changed files with 63654 additions and 6775 deletions
54
Task/Kolakoski-sequence/EasyLang/kolakoski-sequence.easy
Normal file
54
Task/Kolakoski-sequence/EasyLang/kolakoski-sequence.easy
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
func[] kolakoski arr[] lng .
|
||||
len s[] lng
|
||||
i = 1
|
||||
k = 1
|
||||
repeat
|
||||
s[i] = arr[k mod1 len arr[]]
|
||||
if s[k] > 1
|
||||
for j to s[k] - 1
|
||||
i += 1
|
||||
if i > lng
|
||||
return s[]
|
||||
.
|
||||
s[i] = s[i - 1]
|
||||
.
|
||||
.
|
||||
i += 1
|
||||
until i > lng
|
||||
k += 1
|
||||
.
|
||||
return s[]
|
||||
.
|
||||
func pos_kolakoski arr[] .
|
||||
prev = arr[1]
|
||||
cnt = 1
|
||||
for i = 2 to len arr[]
|
||||
if arr[i] = prev
|
||||
cnt += 1
|
||||
else
|
||||
rle[] &= cnt
|
||||
cnt = 1
|
||||
prev = arr[i]
|
||||
.
|
||||
.
|
||||
for i to len rle[]
|
||||
if rle[i] <> arr[i]
|
||||
return 0
|
||||
.
|
||||
.
|
||||
return 1
|
||||
.
|
||||
ias[][] = [ [ 1 2 ] [ 2 1 ] [ 1 3 1 2 ] [ 1 3 2 1 ] ]
|
||||
lngs[] = [ 20 20 30 30 ]
|
||||
for i to len ias[][]
|
||||
kol[] = kolakoski ias[i][] lngs[i]
|
||||
print "First " & lngs[i] & " members of the sequence generated by " & ias[i][] & ":"
|
||||
print kol[]
|
||||
write "Possible Kolakoski sequence? "
|
||||
if pos_kolakoski kol[] = 1
|
||||
print "Yes"
|
||||
else
|
||||
print "No"
|
||||
.
|
||||
print ""
|
||||
.
|
||||
103
Task/Kolakoski-sequence/FreeBASIC/kolakoski-sequence.basic
Normal file
103
Task/Kolakoski-sequence/FreeBASIC/kolakoski-sequence.basic
Normal file
|
|
@ -0,0 +1,103 @@
|
|||
Sub Kolakoski(c() As Integer, slen As Integer, s() As Integer)
|
||||
Redim s(slen - 1)
|
||||
Dim As Integer i, k, j
|
||||
|
||||
i = 0: k = 0
|
||||
Do
|
||||
s(i) = c(k Mod (Ubound(c) + 1))
|
||||
If s(k) > 1 Then
|
||||
For j = 1 To s(k) - 1
|
||||
i += 1
|
||||
If i = slen Then Exit Sub
|
||||
s(i) = s(i - 1)
|
||||
Next
|
||||
End If
|
||||
i += 1
|
||||
If i = slen Then Exit Sub
|
||||
k += 1
|
||||
Loop
|
||||
End Sub
|
||||
|
||||
Function possibleKolakoski(s() As Integer) As Boolean
|
||||
Dim As Integer i, slen, prev, cnt
|
||||
Dim As Integer rle()
|
||||
|
||||
slen = Ubound(s) + 1
|
||||
prev = s(0)
|
||||
cnt = 1
|
||||
For i = 1 To slen - 1
|
||||
If s(i) = prev Then
|
||||
cnt += 1
|
||||
Else
|
||||
Redim Preserve rle(Ubound(rle) + 1)
|
||||
rle(Ubound(rle)) = cnt
|
||||
cnt = 1
|
||||
prev = s(i)
|
||||
End If
|
||||
Next
|
||||
For i = 0 To Ubound(rle)
|
||||
If rle(i) <> s(i) Then Return False
|
||||
Next
|
||||
Return True
|
||||
End Function
|
||||
|
||||
Dim As Integer slens(3) = {20, 20, 30, 30}
|
||||
Dim As Integer j, ia, slen, i = 0
|
||||
Dim As Integer kol()
|
||||
Dim As Boolean p
|
||||
Dim As String poss
|
||||
|
||||
Dim As Integer ias1(1, 1) = {{1, 2}, {2, 1}}
|
||||
For ia = 0 To Ubound(ias1)
|
||||
slen = slens(i)
|
||||
Dim As Integer iaArray(Ubound(ias1, 2))
|
||||
For j = 0 To Ubound(ias1, 2)
|
||||
iaArray(j) = ias1(ia, j)
|
||||
Next
|
||||
|
||||
Kolakoski(iaArray(), slen, kol())
|
||||
|
||||
Print "First "; slen; " members of the sequence generated by [";
|
||||
For j = 0 To Ubound(iaArray)
|
||||
Print iaArray(j);
|
||||
Next
|
||||
Print " ]:"
|
||||
Print "[";
|
||||
For j = 0 To Ubound(kol)
|
||||
Print kol(j);
|
||||
Next
|
||||
Print "]"
|
||||
p = possibleKolakoski(kol())
|
||||
poss = Iif(p, "Yes", "No")
|
||||
Print "Possible Kolakoski sequence? "; poss
|
||||
Print
|
||||
i += 1
|
||||
Next
|
||||
|
||||
Dim As Integer ias2(1, 3) = {{1, 3, 1, 2}, {1, 3, 2, 1}}
|
||||
For ia = 0 To Ubound(ias2)
|
||||
slen = slens(i)
|
||||
Dim As Integer iaArray(Ubound(ias2, 2))
|
||||
For j = 0 To Ubound(ias2, 2)
|
||||
iaArray(j) = ias2(ia, j)
|
||||
Next
|
||||
|
||||
Kolakoski(iaArray(), slen, kol())
|
||||
|
||||
Print "First "; slen; " members of the sequence generated by [";
|
||||
For j = 0 To Ubound(iaArray)
|
||||
Print iaArray(j);
|
||||
Next
|
||||
Print !" ]:\n[";
|
||||
For j = 0 To Ubound(kol)
|
||||
Print kol(j);
|
||||
Next
|
||||
Print "]"
|
||||
p = possibleKolakoski(kol())
|
||||
poss = Iif(p, "Yes", "No")
|
||||
Print "Possible Kolakoski sequence? "; poss
|
||||
Print
|
||||
i += 1
|
||||
Next
|
||||
|
||||
Sleep
|
||||
Loading…
Add table
Add a link
Reference in a new issue