2. 機器學習實踐之手寫數字識別 - 初步特徵選擇及線性識別

這一篇繼上一篇(機器學習實踐之手寫數字識別 - 數據初識

這一篇主要對測試集數據(train.csv)進行簡單特徵分析,並進行簡單線性迴歸識別。

識別率能夠達到家 85%左右,沒識別正確的數據也打印出來,方便對數據進行進一步分析。

代碼中分爲兩個獨立部分, 對一個文件的修改不需要調整另外的文件:

特徵提取部分代碼主要把結果輸出到train.txt文件中

驗證數據部分主要對train.txt數據進行分析,並輸出結果。


機器學習分類

根據提供數據中包含輸出數據的情況可把數據爲了:監督學習,非監督學習及半監督學習。

監督學習:數據中包含輸入數據,及其對應的輸出數據。感知機,決策樹,線性迴歸,邏輯迴歸, 支持向量機等機器學習算法

非監督學習: 數據中包含輸入數據,不提供輸出數據。聚類算法等

半監督學習: 數據中包含輸入數據,只提供部分輸出數據。增強學習等

 

由於提供的數據中,有原始數據(28*28*8維), 及輸出結果,所以這是一個典型的監督學習的例子。

特徵選擇

機器學習的算法基本都是公開的, 每個算法處理邏輯都是一樣。難度主要集中在兩個方面:

1. 如何系統組合每個算法解決問題, 這裏解決問題只能是更優的問題,如讓識別率從90%提升到95%

2. 如果選擇特徵, 這是機器學習的關鍵問題,解決識別率到達90%的問題。特


輸入數據的區別分爲:

原始數據: 如當前問題的 28*28*8維的數據。

特徵工程: 人工幫助抽取特徵,如當前的對稱性,密度之類的

深度學習: 讓機器自己來學特徵。

本次實驗先人工來分特徵,先選的特徵有:

1. 長寬比: 如1的長寬比較小

         2. 空間密度:把數據分爲左上, 左下,右上,右下四個方位的密度來分。 如0時四個方向相差不大。

3. 數據橫向切片數: 1時切段數都爲1. 7時也大部分爲1,其它的都可能有1有2.

  4. 切片數爲1時的位置: 有靠左,有靠右,有靠上, 有靠下,有在數字中間問題。 

5.  平均切片長度,及最長的數。

6. 數字中有圈的個數。

代碼如下, 把生成的特徵放在train.txt文件中:

class FeatureParser:
    def __init__(self, data):
        self.sections = self.getSplitResult(data)
        self.updateParams()
        self.parseCount(data)
        self.updateZeroCount()

    @staticmethod
    def getSplitResult(data):
        sections = {}
        for i in range(28):
            lst = []
            cur = []
            for j in range(28):
                if int(data[i*28 + j]) == 0:
                    if len(cur) > 0:
                        lst.append(cur)
                        cur = []
                    continue
                if len(cur) == 0:
                    cur = [j, j]
                else:
                    cur[1] = j
            if len(cur) > 0:
                lst.append(cur)
            if len(lst) > 0:
                sections[i] = lst
        return sections


    def updateParams(self):
        self.up = min(self.sections.keys())
        self.down = max(self.sections.keys())
        self.left = min([item[0][0] for item in self.sections.values()])
        self.right = max([item[-1][1] for item in self.sections.values()])
        self.x_mid = (self.right+self.left)/2
        self.y_mid = (self.down+self.up)/2

        self.ones = sum([1 for item in self.sections.values() if len(item) == 1])
        self.twos = sum([1 for item in self.sections.values() if len(item) == 2])
        self.threes = sum([1 for item in self.sections.values() if len(item) >= 3])

        #對於只有一段的數字,工區分出靠近數字的左邊還是右邊 3時都會靠左,5時一左一右等。
        self.one_left_up, self.one_left_down, self.one_mid, self.one_right_up, self.one_right_down = 0, 0, 0, 0, 0
        for i, item in self.sections.items():
            if len(item) != 1: continue
            if item[0][1] <= self.x_mid:
                if i < self.y_mid :
                    self.one_left_up += 1
                else:
                    self.one_left_down += 1
            elif item[0][0] >= self.x_mid:
                if i < self.y_mid:
                    self.one_right_up += 1
                else:
                    self.one_right_down += 1
            else:
                self.one_mid += 1
        # print(" ones: ", self.one_left_up, self.one_left_down, self.one_mid, self.one_right_up, self.one_right_down, self.ones)
        section_all = []
        for item in self.sections.values():
            for slice in item:
                section_all.append(slice[1] - slice[0] + 1)
        self.max_width = max(section_all)
        self.avg_width = sum(section_all)/len(section_all)

    def parseCount(self, data):
        #把數字分成4上區域,統計每個區域的點的個數
        self.left_top, self.right_top, self.left_down, self.right_down = 0, 0, 0, 0
        for i in range(28):
            for j in range(28):
                if int(data[i*28 + j]) == 0: continue
                if j < self.x_mid and i < self.y_mid : self.left_top += 1
                if j > self.x_mid and i < self.y_mid:  self.right_top += 1
                if j < self.x_mid and i > self.y_mid:  self.left_down += 1
                if j > self.x_mid and i > self.y_mid:  self.right_down += 1

    def updateZeroCount(self):
        self. zero_count = 0
        last_i, last_item, start_ones = 0, None, False
        for i, item in self.sections.items():

            if last_item is None:
                last_i, last_item = i, item
                continue

            if len(last_item) == 1 and len(item) > 1:
                start_ones = (item[0][1] +1 >= last_item[0][0] and item[-1][0]-1 <= last_item[0][1])

            if start_ones and len(last_item) > 1 and len(item) == 1:
                if item[0][0] - 1 <= last_item[0][1] and item[0][1]+1 >= last_item[-1][0]:
                    self. zero_count += 1
                start_ones = False
            last_i, last_item = i, item


    def getFeature(self):
        all_count = sum((self.left_top, self.right_top, self.left_down, self.right_down))
        height = sum((self.ones, self.twos, self.threes))
        return ((self.right - self.left+1)/(self.down - self.up + 1), #長寬比
                self.left_top/all_count,    #左上點比
                self.right_top/all_count,   #右上點比
                self.left_down/all_count,   #左下點比
                self.right_down/all_count,  #右下點比
                self.ones/height,   #一段佔比
                (self.twos + self.threes)/height,   #多於一段佔比
                self.one_left_up/self.ones,
                self.one_left_down/self.ones,
                self.one_mid/self.ones,
                self.one_right_up/self.ones,
                self.one_right_down/self.ones,
                self.max_width/self.avg_width,
                self.zero_count
            )

def checkFile(fileName):
    line_number = 0
    with open("train.txt", "w") as wFile:
        with open(fileName, "r") as mFile:
            for line in mFile:
                line_number += 1
                if line_number <= 1:continue
                # if line_number > 20: break
                lst = line.split(',')
                # print(",".join(["%.3f" % item for item in FeatureParser(lst[1:]).getFeature()] + [str(lst[0])]) + "\n")
                wFile.write(",".join(["%.3f" % item for item in FeatureParser(lst[1:]).getFeature()] + [str(lst[0])]) + "\n")
                 

checkFile("train.csv")


初步線性迴歸識別 

線性迴歸分析採用sklearn來進行實現。

算法:

每個線性迴歸只對兩個數字進行分類, 這樣只相當於作是非題,查對簡單。

一共組織了45個線性迴歸器來實現兩兩識別。

最後統計45個識別器的識別結果,佔數最多的爲識別結果。

具體看下面代碼實現。


線性迴歸識別代碼:

import numpy as np
from sklearn.linear_model import LinearRegression

def load_data(filename): 
    tmp_data_x = []
    tmp_data_y = []
    with open(filename, "r") as file:
        for line in file:
            lst = [float(item) for item in line.split(",")]
            tmp_data_x.append(lst[:-1])
            tmp_data_y.append(lst[-1])

    return np.array(tmp_data_x), np.array(tmp_data_y)

def load_source(filename):
    with open(filename, "r") as file:
        lines = file.readlines()
        return lines[1:]

def show_source(data):
    lst = data.split(",")
    print("num: {}".format(lst[0]))
    lst = lst[1:]
    for i in range(28):
        print(",".join(["%3s" % item for item in lst[i*28: i*28+28]]))

#加載訓練數據
data_x, data_y = load_data("train.txt")

# 加載原始數據
source_data = load_source("train.csv")

# 打印數據長度
print("len", len(data_x), len(data_y))

# 設置測試數據數量
LEN = -100
# 劃分訓練數據和測試數據 注: 當前測試中用到測試數據訓練集(train.csv)的數據, 而暫時沒有用到測試數據集的數據(test.csv)
x_train, y_train = data_x[:LEN], data_y[:LEN]
x_test, y_test = data_x[LEN:], data_y[LEN:]

# 定義45個線性分類器,並訓練數據,每個分類器只對兩個數字進行識別
RegressionDict = {}
for i in range(10):
    for j in range(i+1, 10):
        regr = LinearRegression()
        RegressionDict["{}-{}".format(i, j)] = regr
        x_train_tmp = np.array([x_train[index] for index,  y in enumerate(y_train) if y in [i, j]])
        y_train_tmp = np.array([0 if y == i else 1 for y in y_train if y in [i, j]])
        regr.fit(x_train_tmp, y_train_tmp)

# 初始化計數器
ret_counter = []
for i in range(len(x_test)):
    ret_counter.append({})
# 預測數據,並把結果放到計數器中
tmp_dict = {}
for key, regression in RegressionDict.items():
    a, b = key.split('-')
    y_test_predict = regression.predict(x_test)
    tmp_dict[key] = [a if item <= 0.5 else b for item in y_test_predict]
    for i, item in enumerate(tmp_dict[key]):
        ret_counter[i][item] = ret_counter[i].get(item, 0) + 1


# 統計預測數據, 計算測試準確率
ok_count = 0
err_count = 0
for i, item in enumerate(y_test):
    ret = int(sorted(ret_counter[i].items(), key=lambda x:x[1],reverse=True)[0][0])
    if ret == int(item):
        ok_count += 1
    else:
        # 打印出錯的數據
        print("\n")
        show_source(source_data[i-100])
        print(x_test[i])
        print(sorted(ret_counter[i].items(), key=lambda x:x[1],reverse=True), int(item))
        err_count += 1

print(" %d ok: %.2f%% err: %.2f%%" % (ok_count+err_count, 100.0* ok_count/(ok_count+err_count), 100.0* err_count/(ok_count+err_count)))

輸出結果

len 42000 42000
/Library/Frameworks/Python.framework/Versions/3.4/lib/python3.4/site-packages/scipy/linalg/basic.py:884: RuntimeWarning: internal gelsd driver lwork query error, required iwork dimension not returned. This is likely the result of LAPACK bug 0038, fixed in LAPACK 3.2.2 (released July 21, 2010). Falling back to 'gelss' driver.
  warnings.warn(mesg, RuntimeWarning)


num: 5
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 13, 67, 67,123,160, 66,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 10, 38, 38,101,189,254,254,254,254,243,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4,213,254,254,254,254,254,247,244,234,116,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,123,254,254,254,231,160, 85, 25,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 44,249,254,215, 74, 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  5,167,254,250, 43,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 57,254,254,211, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,147,254,254,254,246,242,124, 26,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,140,254,254,254,254,254,254,233, 98,  9,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,111,159,160,159,159,222,254,254,144,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 71,242,223, 30,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,110,254,195,  6,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,223,254, 76,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,179,254,131,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 29,221,254,131,  0,  0,  0,  0,  0,  0,  0
  0,  0, 19,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 11,158,254,249, 52,  0,  0,  0,  0,  0,  0,  0
  0,  0,255, 91,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 57,214,254,254,165,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,233,252,242,151,151,144,124,151,151,151,176,210,245,251,254,254,182,  7,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0, 24,135,225,244,254,254,254,254,254,254,254,254,254,245,208, 90, 11,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0, 44, 66, 66, 66, 66, 66, 66, 66, 66, 66, 46,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0

[ 1.     0.12   0.38   0.196  0.304  0.9    0.1    0.     0.     0.611
  0.111  0.278  2.506  0.   ]
[('3', 9), ('5', 8), ('2', 7), ('7', 6), ('1', 5), ('4', 4), ('9', 3), ('8', 2), ('6', 1)] 5


num: 8
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  9, 28,237,246, 71,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,118,222,208,235,254,207,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  5,197,253,239,163, 28,174,253, 68,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,124,254,189, 25,  0,  0, 22,240,163,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0, 27,241,236, 27,  0,  0,  0, 22,240,185,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0, 54,254,216,  0,  0,  0,  0,  0,210,239,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,120,253, 49,  0,  0,  0,  0,  8,219,238,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,120,253,  0,  0,  0,  0,  0,105,253, 71,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0, 55,248, 68,  8,  0,  0, 14,214,207,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,202,254,172, 27,  0,140,254,246,175,149, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0, 23,184,254,254,254,254,255,229,226,254,232, 84,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  6, 84,119,204,253, 89,  8,  3, 58,238,218, 11,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,171,200,  0,  0,  0,  0,106,254, 49,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,253,104,  0,  0,  0,  0, 75,254,119,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,253,104,  0,  0,  0,  0, 75,254,119,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,254,105,  0,  0,  0,  0, 75,255,120,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 15,253,104,  0,  0,  0,  0,132,254,102,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,197,178, 31,  0,  1, 99,251,199,  3,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,124,253,229,132,171,253,218, 57,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,118,254,253,182,109, 21,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0

[ 0.7    0.27   0.203  0.223  0.304  0.35   0.65   0.     0.     1.     0.
  0.     2.676  2.   ]
[('0', 9), ('8', 8), ('9', 7), ('4', 6), ('6', 5), ('3', 4), ('2', 3), ('5', 2), ('7', 1)] 8


num: 1
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 71,203,254,148,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,203,253,253,233, 42,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,196,254,253,253,253, 72,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 74,250,252,233,253,221, 24,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 99,212,253,127,145,253,205,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,100,245,253,126, 10,228,253,205,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0, 60,244,253,217,  8, 13,253,253,107,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0, 45,156,111, 21,  0,117,253,253, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,133,253,253, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,133,253,236, 44,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,134,254,218,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,133,253,217,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,209,253,199,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,254,253, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,254,253, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,254,253, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,254,253, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,254,253,156, 33,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,202,253,253, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 76,253,236, 44,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0

[ 0.5    0.208  0.448  0.     0.344  0.95   0.05   0.     0.     0.316
  0.158  0.526  1.969  0.   ]
[('7', 9), ('3', 8), ('9', 7), ('4', 5), ('1', 5), ('5', 5), ('2', 3), ('8', 2), ('6', 1)] 1


num: 5
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,128,191,128,255,255,255,191, 64,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,128,255,255,255,255,255,255,255,255,255,191,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,191,255,255,255,255,255,255,255,255,255,191,128, 64,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,255,255,255,255,255,128,128, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,255,255,255,255,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,255,255,255,255,191,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,255,255,255,191, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,255,255,255,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,255,255,255, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,255,255,255,255,255,128,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0, 64,255,255,255,255,255,255,191,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,128,128,255,255,255,255,255, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,128,255,255,255,255,128,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0, 64,128,  0,  0,  0,  0,  0,  0, 64,191,255,255,255,191, 64,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,128,255,255,191,  0,  0,  0,  0,  0,  0, 64,255,255,255,255,191,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0, 64,128,255,255,255, 64,  0,  0,  0,  0,  0,  0,191,255,255,255,191,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0, 64,255,255,255,191, 64,  0,  0,  0,128,191,255,255,255,255,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,255,255,255,255,255,255,255,255,255,255,255,191, 64,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,255,255,255,255,255,255,255,255,255,128,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 64,128,128,255,255,128,128, 64,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0

[ 0.85   0.274  0.14   0.268  0.318  0.8    0.2    0.375  0.     0.562
  0.062  0.     2.     0.   ]
[('6', 9), ('5', 8), ('3', 7), ('2', 6), ('1', 5), ('4', 4), ('0', 3), ('8', 2), ('7', 1)] 5


num: 3
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 10, 17, 17, 17, 17, 11,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0, 14,108,108,188,254,254,254,254,155,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0, 12,151,198,206,254,254,254,254,254,254,254,233, 51,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,171,254,254,254,194,130,130,130,207,254,254,206, 34,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,206,237,205, 77, 21,  0,  0, 56,239,254,248, 25,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0, 75,  0,  0,  0,  0,  0,157,254,254,155,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 89,231,252,254, 30,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,215,254,254,254,  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,215,254,254,254,248,248,248,248,248,248,248,210, 83, 59,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,208,246,248,254,254,254,254,254,254,254,254,254,254,182,  3,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 41,155,155,155,155,155,155,155,155,242,254,254,153,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  5, 25,226,254,254,131,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,106,116,  4,  0,  0,  0,  0,117,254,254,254,254, 90,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,115,250,254, 47, 47,206,206,206,245,254,255,254,167, 17,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68,242,254,254,254,254,254,254,254,254,224,123,  8,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,231,254,254,215,197,180, 32, 32, 32, 25,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 97,106,106, 34,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0

[ 1.176  0.351  0.093  0.166  0.391  0.824  0.176  0.071  0.     0.857  0.
  0.071  1.818  0.   ]
[('2', 9), ('3', 8), ('5', 7), ('4', 5), ('1', 4), ('6', 4), ('8', 3), ('0', 3), ('7', 2)] 3


num: 4
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  8,240,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,108,254,113,  0,  0,  0,  0,  0,  8, 65,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,108,254,192,  0,  0,  0,  0,  0, 12,131,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,108,254,197,  0,  0,  0,  0, 32,191,247, 66,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,204,250, 21,  0,  0,  0,  0,114,254,254, 89,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,226,249,  0,  0,  0,  0, 45,179,254,254, 89,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 86,253,190,  0,  0, 33,161,199,238,254,165,  4,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,156,254,129,  0, 35,221,218,236,254,243,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,208,254,150,109,220,245,177,229,254,167,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,208,254,254,254,254,195,  0,214,254, 97,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,208,254,254,254,218,159, 60,245,254,  5,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 75,244,254,246, 66, 13,177,255,212,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 71,191, 21,  0, 55,249,254,141,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,  0,  0, 66,254,254,136,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,178,254,199, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 50,228,254,137,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,160,254,235, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 19,235,235, 64,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,171,238, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  6,243, 58,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0

[ 0.6    0.299  0.268  0.26   0.173  0.5    0.5    0.1    0.2    0.7    0.
  0.     2.362  1.   ]
[('8', 9), ('0', 8), ('9', 7), ('4', 6), ('3', 5), ('5', 4), ('7', 3), ('2', 2), ('6', 1)] 4


num: 5
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0, 62,214,253,193,152,152,193,254,253,254, 91,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,102,253,252,253,252,253,252,253,171,131, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0, 41,254,253,102,102,102,102, 41,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,253,252, 82,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,193,253,203,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0, 71,252,243, 40,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,203,254, 71,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,162,253,192,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 41,254,253, 62,  0,  0,  0, 72,152,254,253,234, 51,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,253,252,102, 41,123,203,253,252,253,252,253,232, 41,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,193,253,254,253,254,253,254,172, 82, 41,214,253,234, 30,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 71,252,253,252,233,151, 50, 10,  0,  0, 10,172,253,172,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,113,253,254,131,  0,  0,  0,  0,  0,  0,  0,  0,254,253, 21,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,152,252,233, 30,  0,  0,  0,  0,  0,  0,  0,  0,253,252,102,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 82,223,123,  0,  0,  0,  0,  0,  0,  0,  0, 62,254,253,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0, 41,203,  0, 20,  0,  0,  0,  0,  0,  0,  0,  0,  0,183,253,212,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,113,253, 62,  0,  0,  0,  0,  0,  0,  0,  0,  0,132,253,255, 91,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,152,252,203,102,102,102, 62,102, 62,102,102,183,253,252,172, 10,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,132,253,254,253,254,253,254,253,254,253,254,253,244,122,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0, 10,131,151,151,192,192,151,192,213,171,151,151, 40,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0

[ 0.9    0.304  0.099  0.31   0.287  0.65   0.35   0.462  0.     0.538  0.
  0.     2.62   1.   ]
[('6', 9), ('5', 8), ('8', 7), ('0', 6), ('4', 4), ('2', 4), ('3', 3), ('9', 3), ('1', 1)] 5


num: 4
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 84,255, 65,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,138,254,146,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 37,144,229,252,254,247, 43,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 37,157,248,254,254,254,254,254, 69,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,105,234,254,254,201, 52,150,254,106,  5,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 56,224,251,242,178, 36,  4,  0,191,254, 64,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0, 85,236,254,242, 44,  0,  0,  0,  0,198,246, 43,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0, 38,236,254,225, 73,  0,  0,  0,  0, 27,247,242, 30,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,144,254,254, 83,  0,  0,  0,  0,  0,106,254,157,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,140,254,254,232,169,129, 86, 37, 15,131,254,131,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0, 12,174,250,254,254,254,254,247,226,245,254,174,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 43, 96,180,219,219,248,254,254,254,191,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,114,254,254,162, 50,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,126,254,221, 13,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,162,254,130,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 68,243,234, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,134,254, 70,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 21,230,223, 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,133,254, 98,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 89,182, 14,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0

[ 0.7    0.24   0.364  0.155  0.24   0.8    0.2    0.     0.     0.625
  0.188  0.188  2.233  1.   ]
[('9', 9), ('4', 7), ('7', 7), ('3', 7), ('5', 5), ('8', 4), ('0', 2), ('1', 2), ('2', 2)] 4


num: 1
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 29,253,255, 27,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 76,252,152,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 13,187,252,140,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 57,252,252,140,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,135,252,252, 63,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,198,253,253,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 29,215,252,127,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85,252,245, 87,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,101,252,223,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0, 16, 63,  0,  0,  0,  0,  0,  0,225,252,223,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0, 16, 63,  0,  0,  0,  0,  0,114,253,253,162,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,113,252,252, 84,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,144,252,208, 19,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,253,252,102,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,253,252, 55,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,141,255,253, 56,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 26,240,253,176,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 29,252,253,167,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 26,239,253,177,  7,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 63,253,252, 55,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0

[ 0.7    0.025  0.457  0.123  0.395  0.9    0.1    0.     0.     0.278  0.5
  0.222  1.358  0.   ]
[('3', 9), ('1', 8), ('2', 7), ('7', 6), ('5', 5), ('6', 4), ('4', 3), ('0', 2), ('9', 1)] 1


num: 3
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0, 68,  7,  7,  7,  7,  3,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,250,254,254,254,254,180,117, 13,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,122,236,236,236,238,254,254,254,175, 48,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0, 13,105,105,190,247,229, 43,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 98,246,206, 55,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 27,197,254, 55,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 29, 69,230,254,243, 46,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0, 29, 50, 50,129,227,254,254,254,233,174, 74, 50,  8,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  9,222,254,254,254,254,254,254,254,254,254,254,254,191,132, 57,  4,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0, 10,227,254,254,254,254,212,192,192,158, 68, 68,171,192,247,254,192, 39,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0, 35, 62, 62, 62, 62, 20,  0,  0,  0,  0,  0,  0,  0,164,248,254,226, 72,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 50,241,254,254,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,237,254,254,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 37,243,254,254,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,131,233,254,254,163,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 32,100,145,251,254,254,150,  1,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 16,128,206, 31,  0, 63,231,238,254,254,254,255,101, 13,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 93,254,254,242,237,242,254,254,254,254,210,142, 10,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 26,214,254,254,254,254,254,254,156, 30,  7,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 87,130,130,130,130, 32,  6,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0

[ 1.     0.371  0.171  0.137  0.32   0.9    0.1    0.167  0.     0.556  0.
  0.278  2.263  0.   ]
[('5', 9), ('3', 8), ('2', 7), ('4', 6), ('7', 5), ('9', 4), ('1', 3), ('8', 2), ('6', 1)] 3


num: 3
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  5, 54,180,254,255,185, 48,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  4, 55,177,253,253,253,253,253, 88,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 29,179,253,253,253,233,224,253,253, 88,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 80,221,253,242,154, 65, 41,145,253,245, 64,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,203,253,245, 83,  0,  0, 34,239,253,182,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,175,201, 78,  0,  0,  0,200,253,243, 12,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  5,  6,  0,  1, 34,160,252,253,253,243,165, 35,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1, 24,117,253,253,244,230,174,232,253,136,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 18,157,253,253,253,221, 78,  0,  0, 25,239,199,  9,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0, 49,196,253,253,253,184, 18,  0,  0,  0,  0,166,253, 53,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,207,253,253,246,102, 18,  0,  0,  0,  0, 23,233,253, 53,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,129,158,156, 37,  0,  0,  0,  0,  0,  0, 30,253,198,  9,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,137,253,188,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,153,253,128,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 12,253,248, 62,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 22,113,253,128,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 55,204,253,246, 66,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0, 57, 84, 84, 84, 84, 84, 84,111,201,245,253,249, 96,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,171,253,253,253,253,253,253,253,253,253,209, 91,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0, 12,106,135,135,248,242,135,108, 17, 17, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0

[ 0.8    0.231  0.331  0.201  0.237  0.65   0.35   0.     0.     0.615  0.
  0.385  2.077  1.   ]
[('9', 9), ('3', 8), ('8', 6), ('5', 6), ('4', 5), ('0', 4), ('2', 3), ('7', 2), ('1', 1), ('6', 1)] 3


num: 4
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,117, 83, 67,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 42,181,182,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,192,253,146,  0,  0,  0,  0,  0,  0,  0,  0, 89,117,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 46,229,253,103,  0,  0,  0,  0,  0,  0,  1, 82,248,170,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,146,253,253,103,  0,  0,  0,  0,  0,  0,  7,253,253,170,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0, 42,231,253,219,  3,  0,  0,  0,  0,  0,  0,141,253,253, 37,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0, 97,253,253,219,  0,  0,  0,  0,  0,  0, 10,183,253,160,  4,  0, 64, 90,116,  0
  0,  0,  0,  0,  0,  0,  0,  0,208,253,253,107,  0,  0,  0,  0,  0,  0,139,253,253,234,206,189,170, 99, 22,  0
  0,  0,  0,  0,  0,  0,  0, 86,248,253,186, 22,  0,  0,  0,  0,  0, 36,182,253,253,253,211,155,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,207,253,253, 61,  0,  0,  0,  0, 25, 66,230,253,253,253,171, 12,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,254,253,253, 66,  7,  7, 79,144,242,253,253,253,253,179,  6,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,254,253,253,253,253,253,253,253,253,253,253,253,246,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,254,253,253,253,253,253,253,253,160,178,253,253,246,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,210,253,253,253,253,204,100, 34,  4, 69,253,253,248, 43,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0, 25, 54, 54, 54, 54, 22,  0,  0,  0, 53,237,253,251, 98,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 55, 75, 73,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0

[ 1.25   0.195  0.201  0.377  0.227  0.438  0.562  0.286  0.     0.571  0.
  0.143  2.532  0.   ]
[('5', 9), ('2', 8), ('6', 7), ('0', 6), ('4', 5), ('3', 4), ('8', 3), ('9', 2), ('1', 1)] 4


num: 8
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0, 29,170,226,141, 86,114,170, 86, 29,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0, 86,255,226,170,170,170,170,226,255,255, 86,  0,  0,  0, 86, 57,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,255,198, 29,  0,  0,  0,  0,  0, 29,198,226,  0,  0, 86,255,170,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,198,226, 86,  0,  0,  0,  0,  0,  0,  0,198,  0,  0, 86,255,170,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0, 29,226,226, 86,  0,  0,  0,  0,  0,  0, 86,  0,  0, 86,226, 29,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0, 57,255,226, 86,  0,  0,  0,  0,  0,  0,  0, 57,226,141,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0, 29,170,226, 57,  0,  0,  0,  0,  0, 29,226,226,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0, 29,170,226, 86,  0,  0,  0,  0,170,226, 29,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,170,255,114,  0,  0,141,226, 29,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 86,226,141, 57,255, 86,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 57,226,255,170,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,198,255,141,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 86,255,226,255,114,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,114,198,  0,114,255,114,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 29,255,141,  0,  0,141,255,141,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 86,255, 57,  0,  0,  0,170,255,114,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 86,255, 29,  0,  0,  0, 29,226,198,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 29,226,170, 29,  0,  0,  0,114,255,114,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 57,255,255,198,226,226,255,255,141,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 57,114,198,255,255,198, 86,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0

[ 0.8    0.307  0.27   0.088  0.336  0.35   0.65   0.     0.     0.714  0.
  0.286  2.891  1.   ]
[('0', 8), ('9', 8), ('4', 7), ('8', 6), ('3', 6), ('7', 3), ('5', 3), ('2', 3), ('6', 1)] 8


num: 5
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 58,191,136,136,136,172,255,202,197,241, 56,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 92,252,253,253,253,253,253,253,253,253,206,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,243,253,253,253,253,253,253,251,206,181,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,243,247,163,120, 65, 65, 65, 62,  8, 23,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,243,230,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,243,230,  0,  0,  0, 40, 10,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  3,243,241,125,207,243,247,244,176,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,107,253,253,253,253,253,253,253,253,226,  9,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 90,252,253,253,253,221,167,201,233,253,162,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,215,253,216,112, 18,  0,  0, 45,229,239, 50,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 29, 59, 22,  0,  0,  0,  0,  0,148,253, 70,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,104,253, 70,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0, 32,113, 13,  0,  0,  0,  0,  0,  0,  0,  0,137,253, 70,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0, 72,253, 35,  0,  0,  0,  0,  0,  0,  0, 12,202,253, 70,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0, 72,253,159,  2,  0,  0,  0,  0,  0,  0,130,253,253, 70,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0, 25,223,253, 33,  0,  0,  0,  0,  0, 44,208,253,253, 70,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0, 99,246,161, 60,  0, 31, 20,164,247,253,253,219, 20,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,225,253,248,201,226,217,253,253,253,244, 84,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 81,202,253,253,253,253,253,253,201, 80,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 67,135,135,190,190,135, 28,  9,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0

[ 0.7    0.243  0.284  0.213  0.26   0.6    0.4    0.083  0.     0.833  0.
  0.083  1.822  0.   ]
[('3', 9), ('5', 8), ('8', 5), ('4', 5), ('0', 4), ('9', 4), ('2', 4), ('1', 3), ('7', 2), ('6', 1)] 5


num: 9
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 34,159,222,138, 34,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0, 17, 99,253,252,252,252,252, 95,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0, 93,252,253,208,100, 69,205,247, 67,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,187,252,253, 92,  0,  0, 74,253,185,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0, 64,248,252,232,  8,  0,  0,  0,253,227, 32,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,185,253,253,106,  0,  0,  0, 11,255,253, 69, 62,138, 22,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,184,252,252,  0,  0,  0,  0,136,253,223, 25,207,252,230,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,184,252,252,  0,  0,  0,  0,230,253,206,  0,207,252,230,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,184,252,252,  0,  0,  0,  0, 94,161, 79,  0,207,252,230,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,184,252,252,  0,  0,  0,  0,  0,  0,  0,  0,207,252,230,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,123,253,253, 64,  0,  0,  0,  0,  0,  0,  7,212,253,231,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0, 25,202,252,193, 17,  0,  0,  0,  0,  9,155,252,252,230,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0, 68,246,253,135, 19,  0,  0, 81,197,252,252,252,230,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0, 94,253,252,219,207,207,253,252,252,252,252,230,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 33,211,252,252,252,253,231,106,211,252,230,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 85,116,116, 53,  0,  0,145,253,233,  9,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 93,252,253,113,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 25,236,253,240, 50,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,230,253,252, 69,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 73,243,117,  6,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, 0

[ 0.8    0.308  0.208  0.176  0.308  0.45   0.55   0.111  0.     0.444  0.
  0.444  2.491  1.   ]
[('8', 7), ('9', 7), ('4', 6), ('0', 6), ('3', 6), ('5', 6), ('2', 4), ('6', 2), ('7', 1)] 9
 100 ok: 85.00% err: 15.00%




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章