From bb24baf357d529d6226ae7ce0810b08d1bfb83a9 Mon Sep 17 00:00:00 2001 From: Mohsen Rakhshan Date: Fri, 1 Feb 2019 23:48:52 -0500 Subject: [PATCH] First version of the function --- nbackseq | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/nbackseq b/nbackseq index af68645..f6b50c2 100755 --- a/nbackseq +++ b/nbackseq @@ -1,10 +1,33 @@ #!/usr/bin/env python + +import random import sys def nbackseq(n, length, words): - pass + seq = [] + if length > n: + # first make a list with length of n + seq.extend(random.sample(words, n)) + # now add entries one by one + for i in range(n, length): + seq.extend(random.sample(words, 1)) + # check if entry is not repeated in the previous n entries + while len(seq[-n:]) != len(set(seq[-n:])): + seq.pop() + seq.extend(random.sample(words, 1)) + # pick length items + elif length <= n: + unique_words = random.sample(words, length) + seq.extend(unique_words) + return seq if __name__ == '__main__': - print(sys.argv) + n = int(sys.argv[1]) + length = int(sys.argv[2]) + words = sys.argv[3:] + if len(words) != len(set(words)): + raise ValueError('Your input words are not unique!') + seq = nbackseq(n, length, words) + print(seq)