使用Sage生成 凸包不等式

新建一个a.sage。

以下的代码就生成了Points的凸包不等式。

Points = [
[0,2],
[1,-32],
[0,20],
[23,233]
]
poly = Polyhedron ( vertices = Points)
for l in poly.inequality_generator():
    print(l)

保存,终端运行:

sage a.sgae > temp_res.txt

输出的格式我们不是很满意,想转化成元组的格式

vim trans2tuple.py
while True:
    try:
        s = input()

        o = '['
        flag = False
        for x in s:
            if x==')':
                flag = False
            if flag:
                o += x
            if x=='(':
                flag = True

        o += ', '
        t = ''
        flag = False

        for x in s:
            if x=='>':
                flag = False

            if flag and x!=' ':
                t += x

            if x=='x':
                flag = True
        o += str( eval(t)  ) + ']'
        print(o)

    except:
        break
python3 trans2tuple.py < temp_res.txt

你可能感兴趣的:(Python,密码学,python,算法)