Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
22
Task/Combinations/Nim/combinations-1.nim
Normal file
22
Task/Combinations/Nim/combinations-1.nim
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
iterator comb(m, n: int): seq[int] =
|
||||
var c = newSeq[int](n)
|
||||
for i in 0 ..< n: c[i] = i
|
||||
|
||||
block outer:
|
||||
while true:
|
||||
yield c
|
||||
|
||||
var i = n - 1
|
||||
inc c[i]
|
||||
if c[i] <= m - 1: continue
|
||||
|
||||
while c[i] >= m - n + i:
|
||||
dec i
|
||||
if i < 0: break outer
|
||||
inc c[i]
|
||||
while i < n-1:
|
||||
c[i+1] = c[i] + 1
|
||||
inc i
|
||||
|
||||
for i in comb(5, 3):
|
||||
echo i
|
||||
22
Task/Combinations/Nim/combinations-2.nim
Normal file
22
Task/Combinations/Nim/combinations-2.nim
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
iterator combinations(m: int, n: int): seq[int] =
|
||||
|
||||
var result = newSeq[int](n)
|
||||
var stack = newSeq[int]()
|
||||
stack.add 0
|
||||
|
||||
while stack.len > 0:
|
||||
var index = stack.high
|
||||
var value = stack.pop()
|
||||
|
||||
while value < m:
|
||||
result[index] = value
|
||||
inc value
|
||||
inc index
|
||||
stack.add value
|
||||
|
||||
if index == n:
|
||||
yield result
|
||||
break
|
||||
|
||||
for i in combinations(5, 3):
|
||||
echo i
|
||||
Loading…
Add table
Add a link
Reference in a new issue