gpt4 book ai didi

code-golf - Code Golf : Leibniz formula for Pi

转载 作者:行者123 更新时间:2023-12-03 08:50:02 24 4
gpt4 key购买 nike

锁定。这个问题及其答案是locked因为这个问题是题外话,但具有历史意义。它目前不接受新的答案或交互。








我最近发布了one of my favourite interview whiteboard coding questions在“What's your more controversial programming opinion ”中,编写一个使用 Leibniz formula 计算 Pi 的函数.

它可以通过多种不同的方式来处理,退出条件需要一些思考,所以我认为它可能会成为一个有趣的 Code Golf 问题。最短的代码获胜!

Given that Pi can be estimated using the function 4 * (1 - 1/3 + 1/5 - 1/7 + ...) with more terms giving greater accuracy, write a function that calculates Pi to within 0.00001.



编辑:2008 年 1 月 3 日

正如评论中所建议的那样,我将退出条件更改为 0.00001 以内,因为这就是我真正的意思(由于四舍五入,精确到小数点后 5 位要困难得多,所以我不想在面试中问这个问题,而在 0.00001 以内是更容易理解和实现退出条件)。

另外,为了回答评论,我想我的意图是解决方案应该计算迭代次数,或者检查它何时完成了足够的工作,但是没有什么可以阻止您预先计算迭代次数并使用该数字。我真的很感兴趣地问了这个问题,看看人们会想出什么。

最佳答案

J,14 个字符

4*-/%>:+:i.1e6

解释
  • 1e6是数字 1 后跟 6 个零 (1000000)。
  • i.y生成第一个 y非负数。
  • +:是一个将列表参数中的每个元素加倍的函数。
  • >:是一个函数,它使列表参数中的每个元素加一。

  • 所以,表达式 >:+:i.1e6生成前一百万个奇数:

    1 3 5 7 ...


  • %是倒数运算符(分子“1”可以省略)。
  • -/对列表参数中的每个元素进行交替求和。

  • 所以,表达式 -/%>:+:i.1e6生成前一百万个奇数的倒数的交替和:

    1 - 1/3 + 1/5 - 1/7 + ...


  • 4*是乘以四。如果将前一个总和乘以四,则得到 π。

  • 就是这样! J是一种强大的数学语言。

    编辑:因为生成 9! (362880) 项的交替和足以具有 5 个十进制数字的精度,并且由于莱布尼茨公式也可以这样写:

    4 - 4/3 + 4/5 - 4/7 + ...



    ...你可以写一个更短的, 12 个字符 程序版本:
    -/4%>:+:i.9!

    关于code-golf - Code Golf : Leibniz formula for Pi,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/407518/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com