import numpy def create_Reber(): state = 0 trans = 'B' data = [[1, 0, 0, 0, 0, 0, 0]] state = 1 while state != 7: if state == 1: if numpy.random.rand() > 0.5: trans = 'T' d = [[0, 1, 0, 0, 0, 0, 0]] state = 2 else: trans = 'P' d = [[0, 0, 1, 0, 0, 0, 0]] state = 4 elif state == 2: if numpy.random.rand() > 0.5: trans = 'X' d = [[0, 0, 0, 1, 0, 0, 0]] state = 3 else: trans = 'S' d = [[0, 0, 0, 0, 1, 0, 0]] state = 2 elif state == 3: if numpy.random.rand() > 0.5: trans = 'S' d = [[0, 0, 0, 0, 1, 0, 0]] state = 6 else: trans = 'X' d = [[0, 0, 0, 1, 0, 0, 0]] state = 4 elif state == 4: if numpy.random.rand() > 0.5: trans = 'V' d = [[0, 0, 0, 0, 0, 1, 0]] state = 5 else: trans = 'T' d = [[0, 1, 0, 0, 0, 0, 0]] state = 4 elif state == 5: if numpy.random.rand() > 0.5: trans = 'V' d = [[0, 0, 0, 0, 0, 1, 0]] state = 6 else: trans = 'P' d = [[0, 0, 1, 0, 0, 0, 0]] state = 3 elif state == 6: trans = 'E' d = [[0, 0, 0, 0, 0, 0, 1]] state = 7 else: print "Error occurred" print trans, data = numpy.concatenate((data,d), axis=0) print " " state = 0 return data data = create_Reber() f = open("time_reber.dat", 'wb') for i in range(numpy.shape(data)[0]): for j in range(numpy.shape(data)[1]): val_ch = str(data[i][j]) + " " f.write(val_ch) f.write("\n") f.close()