【问题标题】:What are some useful or interesting infinite generators? [closed]有哪些有用或有趣的无限生成器? [关闭]
【发布时间】:2011-06-24 09:39:02
【问题描述】:

无限生成器有哪些巧妙的用途?我见过很多看似微不足道的例子,例如“列出所有偶数”,但我认为肯定还有其他更适用于现实场景的例子。具体示例(使用任何支持生成器的语言)表示赞赏!

我将给出一个简单的示例作为答案。

【问题讨论】:

  • stackoverflow.com 的所有离题问题列表。

标签: language-agnostic generator infinite-sequence


【解决方案1】:

简单示例:一次生成一个斐波那契数(在 C# 中没有溢出检查):

public static IEnumerable<double> Fibonacci()
{
    double n_minus2 = 1;
    double n_minus1 = 1;
    yield return n_minus2;
    yield return n_minus1;

    while(true)
    {
        double n = n_minus2 + n_minus1;
        yield return n;
        n_minus2 = n_minus1;
        n_minus1 = n;
    }
}

【讨论】:

  • OP 要求生成器“更适用于现实场景”。
  • @delnan - 我是 OP,这就是我说我会发布的示例。
  • 天啊!对不起。但这种东西真的是你想要的吗?我认为这对于实际问题几乎没有用处。
  • 是的。我想知道是否存在实际上有用的结构相似的机制。
  • 为什么不将您的琐碎示例作为原始帖子的一部分发布? 0.o
【解决方案2】:

随机生成器可能被认为是聪明的使用。

【讨论】:

    【解决方案3】:

    查看http://rosettacode.org/wiki/Hamming_numbers#Haskell 上的 Haskell 代码;它以创造性的方式使用惰性列表(有点像生成器)来列出所有汉明数。

    【讨论】:

    • 还有 Python 和 C# 的生成器版本。
    猜你喜欢
    • 2011-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-31
    • 2011-06-10
    • 2010-09-07
    • 2010-12-13
    • 1970-01-01
    相关资源
    最近更新 更多