Tupper's Self-Referential Formula 塔珀自指公式

个人博客:coonaa.cn 【本文博客同步地址】

无意中记起来之前一次CTF中遇到一个很有趣的不等式——Tupper’s Self-Referential Formula(塔珀自指公式)

塔珀自指公式是杰夫·塔珀(Jeff Tupper)发现的自指公式:此公式的二维图像与公式本身外观一样。
该公式是一种对存储在常量k 中的位图信息进行解码的通用方法 ,它实际上可以用来绘制任何其他图像。

该不等式的定义为:

其中 ⌊ ⌋ 表示楼层函数, mod 是模运算。

当给k赋值:

4858450636189713423582095962494202044581400587983244549483093085061934704708809928450644769865524364849997247024915119110411605739177407856919754326571855442057210445735883681829823754139634338225199452191651284348332905131193199953502413758765239264874613394906870130562295813219481113685339535565290850023875092856892694555974281546386510730049106723058933586052544096664351265349363643957125565695936815184334857605266940161251266951421550539554519153785457525756590740540157929001765967965480064427829131488548259914721248506352686630476300

作图,在 0 ≤ x < 106 和k ≤ y < k + 17 范围内的图像:

可以发现,图像即为不等式本身。

因此,根据k值不同,可以做出“任意”图像。

特意在Google上找到一个极为方便的网站:Tuppers-Formula-Tools
你可以在此网站上:
(1)手动构建图像,求得k值;
(2)根据已有k值画出对应图像。

例如:手动创建包含Coonaa的图像,得到对应的k值:

本文给出一个简易的Python作图脚本,对Tupper’s Self-Referential Formula作图加以验证。

from functools import reducedef Tuppers_Self_Referential_Formula():k = 4858450636189713423582095962494202044581400587983244549483093085061934704708809928450644769865524364849997247024915119110411605739177407856919754326571855442057210445735883681829823754139634338225199452191651284348332905131193199953502413758765239264874613394906870130562295813219481113685339535565290850023875092856892694555974281546386510730049106723058933586052544096664351265349363643957125565695936815184334857605266940161251266951421550539554519153785457525756590740540157929001765967965480064427829131488548259914721248506352686630476300# 这里替换为你自己的K值def f(x, y):d = ((-17 * x) - (y % 17))e = reduce(lambda x, y: x * y, [2 for x in range(-d)]) if d else 1g = ((y // 17) // e) % 2return 0.5 < gfor y in range(k + 16, k - 1, -1):line = ""for x in range(0, 107):if f(x, y):line += " ■"else:line += "  "print(line)if __name__ == '__main__':Tuppers_Self_Referential_Formula()

运行脚本,可以在控制台得到图像:

将k值替换为我自己的k值

32835058729866203892723578897825242430219377821705829199254986348055145924203657208471357261453916522538180856257041969971033107196364985898555526183573928467412048664377344813507245749517758881064820245428861729497402713483970839540513768761175616657434877746262829753083000835830308459336673655071893898503426833241401747647397207543751172332926526049282312281851963766568880132700794901718647560288909884623269306796837625164622773354496

得到我自己的图像:

看到这里,你可以去大展身手搞你想搞的东西了!

数学的东西,摸不着头脑,这里简单做个记录。
网上有很多现成的针对Tupper’s Self-Referential Formula的脚本,大家可以直接到Github等平台查找即可。
附上Tupper’s Self-Referential Formula在维基百科上的介绍。

Tupper‘s Self-Referential Formula 塔珀自指公式相关推荐

  1. 比欧拉公式更美的公式!

    既然提到了欧拉公式,就先感受一下他的令人着迷. 为什么说它是数学里最完美的一个公式,因为它将数学里最重要的几个数字联系到了一起: 两个超越数:自然对数的底e,圆周率π: 两个单位:虚数单位i和自然数的 ...

  2. [MISC]2022DASCTF Apr X FATE 防疫挑战赛

    1.SimpleFlow; 2.熟悉的猫; 3.冰墩墩: 1.SimpleFlow: 下载得到SimpleFlow的压缩包,解压得到SimpleFlow.pcapng,流量分析题目.查找 flag. ...

  3. 2021安洵杯Misc writeup

    忘了发了,来迟了 顺便发一下战队的全wp: https://wp.n03tack.top/posts/4906/ Misc 应该算是签到 来得早不如来的巧 CyzCC_loves_LOL 小脑洞+老考 ...

  4. C语言递归实现汉诺塔

    汉诺塔 汉诺塔问题是指:一块板上有三根针 A.B.C.A 针上套有 64 个大小不等的圆盘,按照大的在下.小的在上的顺序排列,要把这 64 个圆盘从 A 针移动到 C 针上,每次只能移动一个圆盘,移动 ...

  5. nyoj 汉诺塔(一)

    汉诺塔(一) 描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度教的主神梵天在创造世界的时候,在其中一根针上从下到上地穿好了由大到小的64片 ...

  6. 南阳88--汉诺塔(一)

    汉诺塔(一) 时间限制: 1000 ms  |  内存限制:65535 KB 难度: 3 描述 在印度,有这么一个古老的传说:在世界中心贝拿勒斯(在印度北部)的圣庙里,一块黄铜板上插着三根宝石针.印度 ...

  7. 2021 第四届安洵杯 MISC wp

    心态炸裂杯 CyzCC_loves_LOL 拿到两个附件,其中一个附件是这样的,没有见过,上网搜索 HAI D0g3 code I HAS A CODE ITZ "D0g3isthepAss ...

  8. 余弦相似度和欧氏距离_欧氏距离和余弦相似度

    余弦相似度和欧氏距离 Photo by Markus Winkler on Unsplash Markus Winkler在Unsplash上拍摄的照片 This is a quick and str ...

  9. 工作中使用到的单词(软件开发)_2022-02-26_备份

    ■原文 工作中使用到的单词(软件开发)_sun0322-CSDN博客 目录 ■常用链接 ■2020/03/15  (最初整理  242个单词) 2020 6/28 整理 2020 6/29 整理 20 ...

  10. frame被废除_废除用户体验设计的假神

    frame被废除 My first personal computer was an Osborne 1. It came with not only a CP/M operating system, ...

最新文章

  1. 【Linux】在VirtualBox-6.0中安装Manjaro18.0
  2. 正则表达式在js和java中的使用
  3. SAP登陆界面TITLE修改方法(Method of SAP Logon GUI Title Modification)
  4. android 自动补全方法,Android零基础入门|自动完成文本框AutoCompleteTextView
  5. P2280 [HNOI2003]激光炸弹
  6. 【tyvj1520】 树的直径
  7. Windows服务一直“正在启动”怎么杀
  8. 戴尔完成600亿美元与EMC并购交易 戴尔科技正式成立
  9. 大数据时代的图表可视化利器——highcharts,D3和百度的echarts
  10. 待看内容 20160823
  11. eclipse启动时return code 13
  12. RDD、DataFrame和DataSet的区别
  13. 云智能,助力警务大数据云平台建设
  14. 学习人工智能深度学习需要掌握的python语法糖
  15. 学JS必读,《JavaScript高级程序设计(第3版)》
  16. 淘宝图片服务器的学习
  17. QQ微信实时消息转发图片文件视频语音互联机器人自动发消息
  18. 计算机学院吴琴,06年浙江大学计算机与软件学院拒绝报道生名单
  19. VidMasta:搜索和观看在线电影、电视剧的神器
  20. 零基础能不能学计算机专业,零基础能学计算机专业吗?

热门文章

  1. 原生JavaScript贪吃蛇
  2. 安装打印机驱动时报错 -536870329 或 1FFFFDB9
  3. 计算机提示运行错误,每次电脑一开机就会提示脚本运行错误
  4. pdf如何转化成word文档呢?
  5. 数据聚合技术Aggregation
  6. 工作了17年,2021年双11是我见过有史以来“撸腾讯云羊毛”最狠的一次,血赚
  7. 电影视频剪辑怎么做?分享三个小技巧,剪辑其实也不难
  8. dwcs6 mysql站点_dreamweaver cs6中本地站点的管理方法讲解
  9. 十道解分式方程及答案_100道八年级解分式方程练习题(带答案)
  10. 英文论文评审意见_英文论文审稿意见汇总