当前位置:  开发笔记 > 人工智能 > 正文

魔法计算的其他例子

如何解决《魔法计算的其他例子》经验,为你挑选了2个好方法。

我在这里看到了关于John Carmack计算平方根的神奇方法的这个主题,它引用了这篇文章:http://www.codemaestro.com/reviews/9.这让我很吃惊,我只是没有意识到计算sqrt会如此之快.

我只是想知道电脑游戏用来运行得更快的其他"魔法"的例子.

更新:John Carmack不是魔法代码的作者.这篇文章讲述了更多.谢谢@moocha.



1> Piotr Lesnic..:

有一本书收集了很多这些"魔术"并且对你来说很有趣:黑客的喜悦.

你有很多技巧,比如钻头等等......(你有几个平方根算法,例如你可以在谷歌书籍版本上看到)



2> VonC..:

这不是一个数学黑客,但我喜欢这个关于Java6中的罗马数字:

public class Example {
    public static void main(String[] args) {
        System.out.println(
            MCMLXXVII + XXIV
        );
    }
}

由于重写规则,它将给你预期的结果(1977 + 24 = 2001):,
class Transform extends TreeTranslatorJava编译器的内部类.

Transform 访问源代码中的所有语句,并将名称与罗马数字匹配的每个变量替换为具有相同数值的int文字.

public class Transform extends TreeTranslator {
    @Override
    public void visitIdent(JCIdent tree) {
        String name = tree.getName().toString();
        if (isRoman(name)) {
            result = make.Literal(numberize(name));
            result.pos = tree.pos;
        } else {
            super.visitIdent(tree);
        }
    }
}

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有