IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者

标签:序列

共 2 篇相关文章

IT 累计浏览 1,572

Swift的Range 操作符 ... 和 ..<

这篇讲的是Swift中从脚本语言借鉴而来却独具特色的Range操作符`...`和`..<`。文章没有停留在基础用法——用`0...3`表示包含3的闭区间,用`0..<3`表示不包含3的开区间——而是深入剖析了这两个操作符的泛型定义。 作者通过解读源码中的函数签名,揭示了它们的强大之处:除了常见的整数和浮点数,这两个操作符还支持所有遵循`Comparable`协议的类型。这意味着它们可以用于字符串,构建如`"a"..."z"`这样的字符范围。文中用一个实际例子演示了如何利用这一特性高效地校验字符串中的每个字符是否为小写英文字母,让抽象的语法定义立刻变得实用。 文章的亮点在于,它清晰地展示了Swift如何将一种常见的语法糖,通过泛型设计提升为一个通用且类型安全的强大工具,让读者不仅会用,更理解了其背后的设计思路和扩展潜力。

IT 累计浏览 3,062

Hofstadter的非线性递推数列

这篇讲的是Hofstadter G序列——一个由G(n) = n - G(G(n - 1))定义的非线性递推数列。作者从它在《GEB》中的登场出发,揭示了它与斐波那契数列的多重巧妙联系。 序列G生成的树形结构,其每一层节点数恰好构成斐波那契数列。这棵树本身还对应着经典的“兔子繁殖”族谱图。更神奇的是,序列G的值可以通过正整数的Zeckendorf表示(用不重复、不相邻的斐波那契数之和表示)来等价定义:只需将表示式中的每个斐波那契数替换成它前一个数再相加即可。研究还表明,G(n)以黄金比例(√5-1)/2的平均速度线性增长。 文章并未止步于此,而是探索了嵌套更深一层的变体H序列:H(n) = n - H(H(H(n - 1)))。它生成的“奶牛树”同样具有自相似性,并对应着满足不同成熟周期的种群增长模型。H序列遵循类似的规律,但其增长率变为方程x³ + x = 1的正实根,约为0.682。 作者借此展示,简单的递推定义背后,隐藏着从斐波那契数列、黄金比例到整数独特分解的一整套自洽而优美的数学结构。改变递推嵌套的层数,便能系统性地引出一族性质相通但参数平移的序列。