73 lines
2.0 KiB
Plaintext
73 lines
2.0 KiB
Plaintext
# Project : Combinations
|
|
|
|
n = 5
|
|
k = 3
|
|
temp = []
|
|
comb = []
|
|
num = com(n, k)
|
|
while true
|
|
temp = []
|
|
for n = 1 to 3
|
|
tm = random(4) + 1
|
|
add(temp, tm)
|
|
next
|
|
bool1 = (temp[1] = temp[2]) and (temp[1] = temp[3]) and (temp[2] = temp[3])
|
|
bool2 = (temp[1] < temp[2]) and (temp[2] < temp[3])
|
|
if not bool1 and bool2
|
|
add(comb, temp)
|
|
ok
|
|
for p = 1 to len(comb) - 1
|
|
for q = p + 1 to len(comb)
|
|
if (comb[p][1] = comb[q][1]) and (comb[p][2] = comb[q][2]) and (comb[p][3] = comb[q][3])
|
|
del(comb, p)
|
|
ok
|
|
next
|
|
next
|
|
if len(comb) = num
|
|
exit
|
|
ok
|
|
end
|
|
comb = sortfirst(comb, 1)
|
|
see showarray(comb) + nl
|
|
|
|
func com(n, k)
|
|
res1 = 1
|
|
for n1 = n - k + 1 to n
|
|
res1 = res1 * n1
|
|
next
|
|
res2 = 1
|
|
for n2 = 1 to k
|
|
res2 = res2 * n2
|
|
next
|
|
res3 = res1/res2
|
|
return res3
|
|
|
|
func showarray(vect)
|
|
svect = ""
|
|
for nrs = 1 to len(vect)
|
|
svect = "[" + vect[nrs][1] + " " + vect[nrs][2] + " " + vect[nrs][3] + "]" + nl
|
|
see svect
|
|
next
|
|
|
|
Func sortfirst(alist, ind)
|
|
aList = sort(aList,ind)
|
|
for n = 1 to len(alist)-1
|
|
for m= n + 1 to len(aList)
|
|
if alist[n][1] = alist[m][1] and alist[m][2] < alist[n][2]
|
|
temp = alist[n]
|
|
alist[n] = alist[m]
|
|
alist[m] = temp
|
|
ok
|
|
next
|
|
next
|
|
for n = 1 to len(alist)-1
|
|
for m= n + 1 to len(aList)
|
|
if alist[n][1] = alist[m][1] and alist[n][2] = alist[m][2] and alist[m][3] < alist[n][3]
|
|
temp = alist[n]
|
|
alist[n] = alist[m]
|
|
alist[m] = temp
|
|
ok
|
|
next
|
|
next
|
|
return aList
|