Fractal

Acwing 98-分形之城

混江龙づ霸主 提交于 2021-02-06 16:55:43
98. 分形之城 城市的规划在城市建设中是个大问题。 不幸的是,很多城市在开始建设的时候并没有很好的规划,城市规模扩大之后规划不合理的问题就开始显现。 而这座名为 Fractal 的城市设想了这样的一个规划方案,如下图所示: 当城区规模扩大之后,Fractal 的解决方案是把和原来城区结构一样的区域按照图中的方式建设在城市周围,提升城市的等级。 对于任意等级的城市,我们把正方形街区从左上角开始按照道路标号。 虽然这个方案很烂,Fractal 规划部门的人员还是想知道,如果城市发展到了等级 N,编号为 A 和 B 的两个街区的直线距离是多少。 街区的距离指的是街区的中心点之间的距离,每个街区都是边长为 10 米的正方形。 输入格式 第一行输入正整数 n n,表示测试数据的数目。 以下 n n行,输入n组测试数据,每组一行。 每组数据包括三个整数 N , A , B N,A,B, 表示城市等级以及两个街区的编号,整数之间用空格隔开。 输出格式 一共输出 n行数据,每行对应一组测试数据的输出结果,结果四舍五入到整数。 这是著名的无线包含自身分形的“分形”图......(请看《算法进阶》) 其实就是按照算法进阶上说的那样, 先求出子城市的位置,通过一定的翻转和平移得到该城市的位置, 只是考虑如何变换比较麻烦; 与《算法进阶》不同的是: 以每个图中的中心为坐标原点,

Hacker News 简讯 2020-08-15

喜你入骨 提交于 2020-08-15 02:50:48
最后更新时间: 2020-08-15 02:01 Tesla Fremont to Soon Activate World’s Largest Unibody Casting Machine - (tesmanian.com) 特斯拉弗里蒙特公司将很快启用世界上最大的一体铸造机 得分:70 | 评论:42 Factorio 1.0 - (factorio.com) 因子1.0 得分:1236 | 评论:381 Welders Set Off Beirut Blast While Securing Explosives - (maritime-executive.com) 焊工在固定炸药的同时引爆了贝鲁特爆炸 得分:45 | 评论:25 Show HN: Photo Realistic QR-Codes - (qrpicture.com) 显示HN:照片真实的二维码 得分:157 | 评论:38 ZX Spectrum Next Issue 2 blasts through Kickstarter goal - (bbc.com) ZX Spectrum下一期第2期突破Kickstarter球门 得分:40 | 评论:16 Servo Parallel Browser Engine Project - (github.com) 伺服并行浏览器引擎项目 得分:275 | 评论:122

谈一谈数据库的那些事

陌路散爱 提交于 2020-08-12 05:09:40
文章目录 Question1:介绍一下数据库存储引擎,以及罗列你所知道的几种不同的数据库存储引擎? Answer1: 数据库存储引擎含义 存储引擎1:InnoDB ( B+树 ) 存储引擎2:TokuDB( Fractal Tree-节点带数据 ) 存储引擎3:MyIASM 存储引擎4:Memory Question2:谈一谈如何设计出高效的索引(或谈一谈你所知道的索引设计法则或如何在索引层面提高查询速度)? Answer2: Question3:介绍一下数据库的三大范式? Answer3: Question4:介绍一下数据库事务ACID ? Answer4: Question5:介绍一下数据库事务隔离机制? Answer5: Question6:介绍一下数据库事务存储过程( 特定功能的SQL语句集)? Answer6: Question7:谈一谈触发器(一段能自动执行的程序)? Answer7: Question8:介绍一下数据库并发策略? Answer8: Question9:介绍一下数据库锁? Answer9: Question10:介绍一下数据库基于Redis的分布式锁? Answer10: Question11:介绍一下数据库分区、分表技术? Answer11: Question12:谈一谈数据库两阶段提交协议? Answer12: Question13

ghpython怎么实现koch曲线的分形效果

℡╲_俬逩灬. 提交于 2020-08-05 13:24:03
前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。 作者:彦页走刀口 今天我们来看看用ghpython怎么实现koch曲线的分形效果,前两天分享的雪花分形是利用grasshopper的循环插件anemone实现的,然后有个小伙伴说了句十分激励人心的话,叫普通程序员用循环,天才程序员用递归,咱们就来看看用递归怎么搞咯。 首先以基础多边形为初始线,将其炸开,因为后边要分别对每一根线进行分形操作。 经过ghpython一通操作猛如虎之后,就得到了按递归次数分组的分形线,最后将分形线进行join,并分别进行缩放和着色。 # 雪花分形 import rhinoscriptsyntax as rs from Grasshopper import DataTree from Grasshopper.Kernel.Data import GH_Path import ghpythonlib.treehelpers as gt # 函数1,定义一个对直线等分,移动等分点,连接成折线的函数 def fractal(line): # 对直线三等分,得到四个点 pts=rs.DivideCurve(line,3 ,False,True) # 将第三个点以第二个点为中心旋转-60° pt_rotate=rs.RotateObject

复杂性与临界性初探

梦想的初衷 提交于 2020-07-28 10:14:54
1. 引言 - 复杂性与临界性 宇宙怎样以大爆炸中产生的几种基本粒子开始而以生命、历史、经济和文学告终? 为什么大爆炸不形成粒子的一种简单的气体或凝聚成一个巨大的晶体呢? 针对这些问题,目前学界的主流看法是, 自然界的复杂行为反映了有许多分支的大型系统会朝着均衡的临界态发展的一种趋势 。这种方法偏离了平衡,而且微小的扰动可能导致非常巨大的不同后果。 大多数的改变是通过灾难性的事件,而不是遵循一种平和渐变的路线来实现的。 并且,最重要的是, 朝着这种非常微妙的态的演化并没有受到任何来自外部因素的影响。这种态之所以建立起来仅仅是因为系统中的单个元素之间的动力学相互作用 。 为了不至于太抽象,让我们看一看海滩上的孩子让沙粒缓缓流下而形成一堆沙的场景, 开始的时候,沙堆是平的,沙粒在附着的位置上靠的很近。它们的运动能够用单个沙粒的物理性质来理解。 堆沙的过程在继续,沙堆变得越来越陡峭,开始有少量沙粒沿着沙堆滑动。 对着时间的推移,沙粒的滑动越来越大。 最终,一些滑动的沙粒甚至跨越了整个沙堆或沙堆的大部分。从这个时间点开始,系统远离了平衡,因而它的行为不再能用单个沙粒的行为来描述。雪崩形成了自身的内部力量,而这一点只有从对整个沙堆的性质的总体描述而不是单个沙粒的简化描述,才能得以理解。 换句话说, 沙堆是一个复杂系统 。 随处可见的复杂现象表明, 自然界是作用在自组织临界态上面的 。

JavaScript动画实例:递归分形图动态展示

自作多情 提交于 2020-07-27 08:48:17
在 “ JavaScript图形实例:SierPinski三角形 ” 和 “ JavaScript图形实例:Levy曲线及其变形 ” 等文章中我们介绍了通过递归生成分形图形的方法。我们可以将绘制的分形图形每隔一定的时间间隔后,增加递归深度重新绘制一次,这样就可以得到分形图形的动态生成效果。 1.SierPinski垫片 递归深度depth从1开始,将递归绘制的SierPinski垫片每隔1秒后增加递归深度(depth++),重新绘制一遍,得到SierPinski垫片的动态生成动画效果。 编写如下的HTML代码。 <!DOCTYPE> <html> <head> <title>SierPinski三角形</title> </head> <body> <canvas id="myCanvas" width="600" height="600" style="border:3px double #996633;"> </canvas> <script type="text/javascript"> var canvas = document.getElementById('myCanvas'); var ctx = canvas.getContext('2d'); var depth=0; function sierpinski(x1,y1,x2,y2,x3,y3,n) { if (n<

分形的奥秘!分形着色器!shader 编程入门实战 ! Cocos Creator!

╄→гoц情女王★ 提交于 2020-02-27 17:05:07
> 极致的数学之美! 什么是分形? > “一个粗糙或零碎的几何形状,可以分成数个部分,且每一部分都(至少近似地)是整体缩小后的形状” 简单来说,分形 (fractal) 就像这个doge表情包一样,放大一部分后和原来的图近似。 用分形着色器实现的效果如下,在编辑器内放大其中的一部分,会发现与整体非常相似! 如何实现这么优雅的图片?一切起源于简单的公式 (julia set) 。 f(n) = f(n-1) * f(n-1) + c 通过迭代 n 次后可以实现分形效果。 起始值 f(0) 如何确定? 可以通过纹理坐标来确定。 当然这个起始值是个复数,有实数部分和虚数部分。我们用纹理 u 坐标表示实数, v 表示虚数部分。 纹理坐标的取值是 0-1 ,可以加一些偏移和缩放处理。 float real = (v_uv0.x-0.5)/zoom + offset.x; float image = (v_uv0.y-0.5)/zoom + offset.y; c 也是复数,对于不同的值,效果也不一样。 一次迭代如何计算?记得虚数部分 i*i = -1 就可以根据公式计算了,参考代码如下: float tmp_real = real; // 计算新的复数-实数部分 // f(n+1) = f(n)*f(n) + c // (a+bi)*(a+bi) + c = a*a - b*b + (2*a

zk-SNARKs零知识证明的8种构建介绍与对比

你。 提交于 2020-02-25 23:53:26
zk-SNARK是一个快速发展的领域,仅在过去的两个月里,就宣布了数个突破性的zk-SNARK构建。曾经必须的可信设置现在已经是冗余的了,这意味着可以使用任何计算。然而关于这些新的zk-SNARK构建的资料很难找到。在这片文章中,我将比较这些新出现的zk-SNARK构建,并在以后不定期更新。 <!--more--> 像zk-SNARK这样的零知识证明有很多应用:Zcash利用零知识证明来保护隐私,Coda和Mir利用零知识证明将整个区块链压缩到只有几K字节,0x和Matter则利用零知识证明将许多交易封装为以太坊 上的单一证明。如果你还不了解零知识证明,可以看一下这里的 解释 。 相关链接: 以太坊 | 比特币 | EOS | Tendermint Core | Hyperledger Fabric | Omni/USDT | Ripple 1、可信设置 传统的zk-SNARK,例如Groth16有一个主要的缺点:依赖于一个公共的参考字符串,该字符串使用一次性可信设置创建。该设置创建一个供证明方和验证方同时使用的参考字符串。这里面有三个主要的问题: 可信设置生成的“有毒废料”,如果泄露的话,可以被用于生成无法 检测的伪造证明。多方计算通常会忽略这个问题,但是仪式的协调 异常复杂。 可信设置创建的参考字符串通常绑定到一个电路(基本上就是程序)。 不可能为任何计算创建一个单独的可信设置