zoukankan      html  css  js  c++  java
  • homework-04

    这次作业比较变态。特别是矩阵的生成,所以我去网上找了个python的开源实现

    由于是软件工程课,实现目的才是第一位的。毕竟这种代码一般很难搞出最优解,搞出来也不是本门课的目标了。

    希望主角海涵,给个好点的分数,毕竟这次作业的目的我达到了。

    我所做的就是用已有的生成代码,生成一个尽可能紧凑的矩阵,然后我暂时没想到有什么好的办法,就果断从5到30(最大值),暴力枚举了

    计算主要是交给shell程序做的。我使用了临时文件来分析结果,用了管道来输出结果:

    # -*- coding: utf-8 -*-
    
    #由于这是一门关于软件工程的课,所以我使用了别人的算法,但是也可以做到较好的完成目标
    import os, sys
    
    def go():
        if len(sys.argv) < 2:
            print 'need a parameter'
            return
        path = sys.argv[1]
        if not os.path.isfile(path):
            print 'need a file'
            return
        path = os.path.abspath(path)
        f = open(path)
        words = 0
        for i in range(5,31):
            cmd = 'python assist/wordsearch.py '+path+' --grid '+str(i)+' '+str(i)+' >t123.txt'
            os.system(cmd)
            f = open('t123.txt')
            buf = f.read()
            f.close()
            os.remove('t123.txt')
            lines = [t for t in buf.split('
    ') if t.strip()!='']
    
            twords = int(lines[-1].split()[0])
            if twords > words:
                words = twords
                l = i;
        cmd = 'python assist/wordsearch.py '+path+' --grid '+str(l)+' '+str(l)+' >t123.txt'
        os.system(cmd)
        f = open('t123.txt')
        buf = f.read()
        f.close()
        os.remove('t123.txt')
        buf = buf.split('
    ')[1:1+l]
        print '
    '.join(buf)
    if __name__ == '__main__':
        go()
  • 相关阅读:
    JDBC_批处理Batch_插入2万条数据的测试
    JDBC_ResultSet结果集用法_游标原理_关闭连接问题
    JDBC_PreparedStatement用法_占位符_参数处理
    python_字符串_常用处理
    R-biomaRt使用-代码备份
    R-描述性统计
    django开发傻瓜教程-3-celery异步处理
    Head First Java-图形化界面
    javascript隐藏和显示元素以及清空textarea
    Entrez Direct
  • 原文地址:https://www.cnblogs.com/yzong/p/3391614.html
Copyright © 2011-2022 走看看