PythonChallenge 挑战之路 Level-31

一开始的网页源码说和Python没有关系,点击图片却需要验证口令,口令是岛屿:国家,那么用Google图片搜索搜索一下这幅图,发现是泰国的一个祖父祖母石,在Koh Samui, Thailand所以口令就是:kohsamui:thailand

跳到下一个页面后是一副很炫的图片,提示给出了一些数据,上网搜了一下才知道这是一幅分形图,利用Mandelbrot算法构造,利用给出的参数画一幅新图后,和原图比较,存在一些数据不同的点(差值为16和-16),一共有1679个,因式分解为1679=23*73,所以可以再构造一幅新图。代码为:

import Image
imgbase = Image.open('mandelbrot.gif')
img = imgbase.copy()
left = 0.34
top = 0.57+0.027
width = 0.036
height = 0.027
max = 128
diff = []
for j in range(imgbase.size[1]):
    for i in range(imgbase.size[0]):
        point0 = complex(left + i*width/imgbase.size[0], top - (1+j)*height/imgbase.size[1])
        point = 0+0j 
        for k in range(max):
            point = point **2 + point0
            if point.imag**2+point.real**2>4:
                break
        img.putpixel((i,j),k)
        if k!=imgbase.getpixel((i,j)):
            diff.append(k - imgbase.getpixel((i,j)))
img.save('out31.png')
img2 = Image.new('1',(23,73))
img2.putdata([i<0 for i in diff])
img2.save('out31_2.png')
构造出的新图为:


再Google一下这副图,就能获得结果了:arecibo

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值