V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
mathzhaoliang
V2EX  ›  Python

秀一个 Python 脚本生成的新作品

  •  7
     
  •   mathzhaoliang ·
    neozhaoliang · Oct 10, 2017 · 7303 views
    This topic created in 3122 days ago, the information mentioned may be changed or developed.

    请看动态图: https://github.com/neozhaoliang/pywonderland/raw/master/img/wilson.gif

    这个图演示的是概率论中的一个随机算法,叫做 Wilson 算法,它生成一个完美迷宫(即一个生成树),而且这个迷宫是在所有完美迷宫中等概率地随机选取的,UST 这个单词的意思是 uniform spanning tree 的简写,即服从一致分布的生成树。

    生成迷宫后根据每个顶点与起点的距离对迷宫进行染色,使用的是宽度优先搜索算法。

    整个动态图是用 python 一次生成的,不调用任何外部程序和第三方模块。(字体文件没有办法,这是必须的,不过如果不嵌入文本,只生成迷宫的话则不需要此文件)。只要你安装了纯净版的 python2 或者 python3,那么不需要安装任何依赖即可运行。

    程序运行时间一般不超过半分钟,生成的动态图一般在 1M 左右,一般包含 1000 - 5000 帧。(是的你没看错,就是这么拽)

    项目之前在论坛上发过,不过这次玩了一点新花样。当然最精彩的永远在后面。下一个项目双曲蜂巢正在紧张制作中。

    49 replies    2017-10-23 11:31:10 +08:00
    z0z
        1
    z0z  
       Oct 10, 2017
    我除了回复还能干什么
    mathzhaoliang
        2
    mathzhaoliang  
    OP
       Oct 10, 2017
    @z0z 术业有专攻啊。每个人用 python 干的事情是不一样的,我只是选了一个比较少有人玩的方向。
    lieh222
        3
    lieh222  
       Oct 10, 2017
    一脸蒙蔽的进来,一脸蒙蔽的出去
    z0z
        4
    z0z  
       Oct 10, 2017
    @mathzhaoliang 多谢安慰啊。突然想起来了,大神请移步到这里 https://www.v2ex.com/t/395736#reply3 可否点拨一下文中的那个连接实现计算极限功能的大概原理?
    BBCCBB
        5
    BBCCBB  
       Oct 10, 2017
    cool
    mathzhaoliang
        6
    mathzhaoliang  
    OP
       Oct 10, 2017
    @z0z 它那个网站只是调用了后台的一个程序(我猜他是用了 mathematica,不过也可能用的是自己写的其它程序)


    处理多项式,微分,积分这些属于符号计算的领域(记得吴文俊的机器证明吗?),符号计算有一套自己的算法来表示和研究数学对象,它与通常进行数值计算的科学计算器很不一样。比如分解多项式,它就是先在有限域上计算(有限域运算比较慢,但是不存在精度损失的问题),然后回到实数域上。插值的方法也很常用,但是不是你想的那种用法。
    xrlin
        7
    xrlin  
       Oct 10, 2017
    厉害
    ipwx
        8
    ipwx  
       Oct 10, 2017
    @z0z Python 的话,有 SimPy,有 Sage Math。
    vtwoextb
        9
    vtwoextb  
       Oct 10, 2017
    一脸蒙蔽的进来,一脸蒙蔽的出去
    SakuraSa
        10
    SakuraSa  
       Oct 10, 2017
    很 cool,不知道能不能放出源码供大家学习一下?
    z0z
        11
    z0z  
       Oct 10, 2017
    @mathzhaoliang 多谢,我按照这个思路先去查查,目前我还不能就此问题回复,因为我还不知道该说什么,我是不是暴露了我的数学还很不好.......

    @ipwx 多谢啊,这个我也去查查。
    shingle
        12
    shingle  
       Oct 10, 2017
    @SakuraSa 根据 gif 图的路径看不出来 github 项目地址么 ╮(╯_╰)╭
    CEBBCAT
        13
    CEBBCAT  
       Oct 10, 2017 via Android
    好棒!我要在我们 Minecraft 服务器用这个做多层迷宫
    dalang
        14
    dalang  
       Oct 10, 2017
    cool
    malkavia
        15
    malkavia  
       Oct 10, 2017
    github 已 star
    好厉害
    SakuraSa
        16
    SakuraSa  
       Oct 10, 2017
    @shingle 我没注意到...
    点进去居然发现是我以前 star 过的...
    mathzhaoliang
        17
    mathzhaoliang  
    OP
       Oct 10, 2017
    @CEBBCAT 这个方法比常用的 Prim, Kruskal 算法要慢,它的关键在于生成的迷宫服从一致分布。你在游戏里面用这个算法估计会很慢 。。。
    CEBBCAT
        18
    CEBBCAT  
       Oct 10, 2017
    @mathzhaoliang #17 (●'◡'●),人工识图盖迷宫
    Mcatt
        19
    Mcatt  
       Oct 10, 2017
    厉害
    liyang803
        20
    liyang803  
       Oct 10, 2017
    一脸蒙蔽的进来,一脸蒙蔽的出去
    linuxchild
        21
    linuxchild  
       Oct 10, 2017
    一脸蒙蔽的进来,一脸蒙蔽的出去
    cbiqih
        22
    cbiqih  
       Oct 10, 2017
    一脸蒙蔽的出去,再一脸蒙蔽的进来~
    ashin
        23
    ashin  
       Oct 10, 2017
    厉害
    xiaozizayang
        24
    xiaozizayang  
       Oct 10, 2017
    很早就看到大佬的项目 继续膜拜
    newworld
        25
    newworld  
       Oct 10, 2017
    已 star https://github.com/neozhaoliang
    真大佬...收下我的膝盖!哈哈哈
    ranleng
        26
    ranleng  
       Oct 10, 2017
    一脸蒙蔽的进来,一脸蒙蔽的思考,一脸蒙蔽的出去.
    (先 star 了.. 明天研究研究
    mathzhaoliang
        27
    mathzhaoliang  
    OP
       Oct 10, 2017 via Android
    @newworld
    @ranleng
    @xiaozizayang
    欢迎大家提出意见!
    Chingim
        28
    Chingim  
       Oct 10, 2017
    数学好的都是真大神
    zingl
        29
    zingl  
       Oct 10, 2017
    还以为是能生成 python 脚本的新东西
    yang2yang
        30
    yang2yang  
       Oct 10, 2017
    膜拜大佬
    Tunar
        31
    Tunar  
       Oct 11, 2017 via Android
    很 coooooool !
    lxy42
        32
    lxy42  
       Oct 11, 2017
    厉害
    zjddp
        33
    zjddp  
       Oct 11, 2017
    第 2500 star 已送上
    mathzhaoliang
        34
    mathzhaoliang  
    OP
       Oct 11, 2017
    @zjddp 哇,谢谢!!
    zhangzixu
        35
    zhangzixu  
       Oct 11, 2017
    学习学习
    sennes
        36
    sennes  
       Oct 11, 2017

    挺有趣的
    mathzhaoliang
        37
    mathzhaoliang  
    OP
       Oct 12, 2017
    @sennes 很棒!怎么做到在回复里面贴图片的?
    mathzhaoliang
        38
    mathzhaoliang  
    OP
       Oct 12, 2017
    @sennes 我知道了。你是传到新浪图库然后用 md 格式引入的。。。
    sennes
        39
    sennes  
       Oct 12, 2017
    @mathzhaoliang #36
    Hello 如果是新浪图库的话 直接贴地址就行了 不需要加 Markdown 格式
    另外我用的是一款叫 V2EX plus 的 Chrome 插件 可以直接在回复中插图的
    sennes
        40
    sennes  
       Oct 12, 2017
    @mathzhaoliang #36

    改了下颜色、调成正方形。path 和 fill 调成一样颜色。
    可以用来做头像了哈哈
    mathzhaoliang
        41
    mathzhaoliang  
    OP
       Oct 12, 2017
    @sennes 可以当头像吗?我看 V2EX 允许 GIF 格式的图片,但是上传动图作为头像会报错吧?
    sennes
        42
    sennes  
       Oct 12, 2017
    @mathzhaoliang #39 哈哈有些网站支持 gif 动图头像的。
    mathzhaoliang
        43
    mathzhaoliang  
    OP
       Oct 13, 2017
    @sennes 我在这个项目下的另一个程序 Reaction Diffusion Simulation 也可以用来生成字符动态图:

    http://wxt.sinaimg.cn/thumb300/4e130e36ly1fkgoanosrmg205k02snmt.gif?tags=%5B%5D
    mathzhaoliang
        44
    mathzhaoliang  
    OP
       Oct 13, 2017
    @sennes 那个地址不对,好像应该这样

    sennes
        45
    sennes  
       Oct 13, 2017
    @mathzhaoliang #42 好 我研究一下!
    f8281113
        46
    f8281113  
       Oct 13, 2017
    一脸蒙蔽的进来,一脸蒙蔽的出去 ^v^
    0754
        47
    0754  
       Oct 14, 2017
    一脸蒙蔽的进来,一脸蒙蔽的出去
    wisetc
        48
    wisetc  
       Oct 15, 2017
    高深
    buyaoshuohua
        49
    buyaoshuohua  
       Oct 23, 2017
    一脸蒙蔽的进来,一脸蒙蔽的出去
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3604 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 133ms · UTC 11:10 · PVG 19:10 · LAX 04:10 · JFK 07:10
    ♥ Do have faith in what you're doing.