输出的pi位数与代码的长度相同


9

您的挑战是打印xpi的数字,其中x您的代码长度。

例子:

Source code (length) -> output
foo!        (4)         3.141
foobar      (6)         3.14159
kinda long  (10)        3.141592653
+++++       (5)         3.1415
123456789   (9)         3.14159265

您可以用来确定需要打印的位数。请注意,小数点不算作pi的数字-因此长度为3的代码应具有长度为4的输出。floor(π/10 * 10code_length) / 10code_length - 13.14

规则:

  • 您的代码长度必须大于三个字符。
  • 您不得使用任何标准漏洞。
  • 您可以使用任何标准允许的输出方法。
  • 您可能无法阅读源代码来确定代码长度。
  • 您可能不使用内置pi常量。
  • Pi必须完全准确且不能近似。
  • 输出中的小数点是必需的。如果选择通过返回值输出,则必须返回浮点整数。
  • 挑战的目标是找到每种语言中最短的解决方案,而不是该解决方案中最短的语言。只要较短的解决方案以相同的语言发布,只要您的解决方案使用不同的方法,不要害怕用一种语言发布解决方案。

...那么是否有效?
乔纳森·艾伦

(编辑^ 这个平均数(四舍五入))
乔纳森·艾伦

“代码长度”←是字节还是字符?
林恩

与往常一样,@ Lynn字节。
MD XF

才被3允许吗?
NoOneIsHere

Answers:


3

Japt9个 4字节

只要它可以允许就可以:)

在之后包含不可打印的字符(反向换行,字符代码141)#

3.#

测试一下

在Japt中,其后的任何字符#都将转换为其字符代码,并附加到其后的任何数字或小数点,在这种情况下,3.




6

VBA(Excel),15个字节

MsgBox 4*Atn(1)

输出:3.14159265358979

我认为这是不可接受的,因为我打高尔夫球只是为了适应PI的长度。它的未分配长度为17个字节。D:


1
好像您还没有受到欢迎,所以欢迎您访问该网站!
MD XF

哦,谢谢您,先生!:D
消除

是不是Atn正切的?我不确定是否允许...问OP
JungHwan Min

我以为OP仅指内置PI。我的错。
取消

5

果冻,6 个字节

3;⁽4ƒṾ

在线尝试!

3,14159使用允许的“欧洲”小数点分隔符进行打印,

怎么样?

3;⁽4ƒṾ - Main link: no arguments
3      - literal 3                3
  ⁽4ƒ  - base 250 literal 14159   14159
 ;     - concatenate              [3,14159]
     Ṿ - unevaluate               ['3', ',', '1', '4', '1', '5', '9']
       - implicit print           3,14159

1
该数字列表看起来很奇怪。我认为里面有一个额外,'的东西。
乔纳森·弗雷希

1
您可以代替-ÆAær5使用进行使用,但是它将与我的Jelly解决方案相同。.,
扎卡里



4

Desmos,130字节

f\left(\right)=\frac{\operatorname{floor}\left(10^{128}\cdot 4\sum_{k=1}^{9^9}\frac{\left(-1\right)^{k+1}}{2k-1}\right)}{10^{128}}

当使用Desmos编辑器生成该代码时,它的源代码(可以通过在Desmos的内部和外部进行复制和粘贴来访问)的源代码不是最佳的,因此,尽可能地减少了几个字节的空格。

这定义了一个f不带参数返回pi 的函数,该函数使用Gregory序列计算为k=9^9 (我无法确认这是足够准确的,但是我相信是这样,可以使用更大的k值使它更精确。 ),然后将结果取整到128小数点后一位,该小数位放在旁边3.,是源代码的长度。

在线尝试!


如何实际看到结果-我只看到3.14159265617,我在错误的位置看;我需要按一下按钮吗?
乔纳森·艾伦,

Desmos默认不会打印到所提供的小数位数,但该值仍应准确。
ATaco

1
这是令人失望的,因为挑战是“打印...”
乔纳森·艾伦

1
“输出中的小数点是必需的。如果选择通过返回值输出,则必须返回浮点整数。” 这使它有效。
ATaco

我觉得该声明的目的不是要降低精度,而是要确保使用小数点分隔符。提醒您,我认为您的回答不是很糟糕。
乔纳森·艾伦,




3

Neim,5个字节

3FBρσ

说明:

3      Push 3
 FB    F pushes 45, B converts it into a character code, '.'
   ρ   Push 14
    σ  Push 15
Implicitly concatenate and print stack

在线尝试!


3

APL,6个字节

10○⍟-1

取ln(-1)的虚部。

在线尝试!


嘿,欢迎回来@Uriel!不错,我没有想到这样的事情(带有负数的对数),不错!
扎卡里

@Zacharý谢谢,刚刚访问了我,不由回答这个问题:P
Uriel


2

Math.JS,17个字节。

     log(-1,e).im

那是5个领先的空间

这将计算出15位小数,并隐式打印出来。

在线尝试!


嗯,从技术上讲,它计算的虚部ln(-1),但是由于它是纯虚数,所以等效于除以i
扎卡里

2

05AB1E,11个字节

3•∊&SK•)'.ý

在线尝试!

COMMAND     # CURRENT STACK         | EXPLANATION
------------#-----------------------+-----------------------------------
3           # [3]                   | Push 3.
 •∊&SK•     # [3, 1415926535]       | Push compressed base-255 number 1415926535.
       )    # [[3,1415926535]]      | Wrap the 2 to an array.
        '.  # [[3,1415926535],'.']  | Push a decimal point.
          ý # ['3.1415926535']      | Join 3 and 1415926535 with a decimal point.

使用内置插件:

05AB1E,4个字节

žq5£

在线尝试!


3žs 由于某种原因无法正常工作...


@Zacharý我错过了什么吗?为什么有特殊的xD?
魔术章鱼缸

它在我的用户名中,还可以添加说明吗?
扎卡里

@ZacharýHA!我的大脑正在经历所有可能与PPCG相关的有趣笑话,结果一片空白。我想太多了
魔术章鱼缸

还添加了@Zacharý。
魔术章鱼缸

如果我有隐含的IO,就没有办法打E3.,我在生气现在自我:对。
扎卡里

2

ForceLang,269个字节

set S 0x5F258E476FC1B3B5571012206C637089460E41E814CB071E61431B5F0671F551D18D2C5D2D3A2565E408C6DE8D753F595B6E9979C3866D1C9965008DCFB02E3BD11D21DFFAF17978F05C8BBACF55A5ED5E90B1D8CAD8736AA4B728EB342B453F86353DB371D322B6A98613BC5CCB00AC2.mult 1e-270
io.write S.toString 268

至少链接到github上的语言
乔纳森·艾伦

2

MATL9 8字节

-1X;V9:)

在线尝试!

说明:

-1      % number literal
X;      % inverse cosine (radians), giving pi
V       % convert to string
9       % specify precision
:)      % keep first 9 characters - 8 digits of precision

感谢路易斯·门多(Luis Mendo),节省了一个字节!


1

果冻,6个字节

-ÆAær5

在线尝试!

使用与其他果冻答案不同的方法。

怎么样?

-ÆA-1(的pi)的反余弦值,ær5检索所需的部分。计算出来,因此在这种情况下舍入等效于截断



1

Perl 5,40个字节

}{$\=$\/~(2*$_)*~$_+2for-130..-2

需要命令行选项-pMbignum,计为8。

样品用途:

$ perl -pMbignum test.pl < /dev/null
3.141592653589793238462643383279502884197

很抱歉没有TIO链接,它似乎不支持bignum(或无与伦比的开括号...)。


1

MY,7个字节

’2ō"8↑↵

在线尝试!

怎么样?

  • ,递减堆栈的顶部(0如果为空,则弹出堆栈,使堆栈成为[-1])。(与果冻相同的符号)
  • 2,推2
  • ō,由于堆栈的顶部是两个,因此请丢弃2,pop n,然后按入acos(n)(以弧度表示,这是pi,该符号o在其顶部带有一个负号。o(对于正常触发)来自APL)。
  • ",弹出堆栈的顶部元素,然后将其作为字符串推送。
  • 8,推8
  • ,弹出,a然后bb[:a](这是从APL提取的另一个符号)。
  • ,用新行输出(OUTPUT <-STACK)。

然后添加隐式输出:P
MD XF

我保持忠于我的本性,我可能会与实际语法的改进版本,肯定有隐含的输出
扎卡里

1

RPL(HP48),86.5字节,87位[此计数吗?]

« GROB 8 43
14159265358979323846264338327950288419716939937510582097494459230781640628620899862803
→STR 9 OVER SIZE SUB 2 "." REPL »

GROB是图像关键字。接下来的两个数字是宽度和高度。后面的十六进制数字是位图。每2位数字加上图像元数据就是1字节的存储空间。

空程序« »占用10个字节。命令占用2.5个字节。浮点数占用10.5个字节,但如果等于一位整数,则可以占用2.5个字节。

HP48在每个内存位置存储4位而不是8位,因此一个字节占用2个连续位置(低字节序)。通常使用20位块,它们占用2.5个字节(不是3个字节)。





0

Excel VBA,16字节

匿名VBE立即窗口函数,无需输入和输出到Excel VBA的任何STDOUT

每行代表一个单独的函数,该函数返回长度为16的Pi

?Mid(4*Atn(1),1)
?Str([Acos(-1)])
Debug.?4*Atn(1);
MsgBox[Acos(-1)]
[A1]="=ACOS(-1)"



0

TI-BASIC,7个字节

round(4tan⁻¹(1),6

round(2sin⁻¹(1),6

round(cos⁻¹(-1),6

这三个语句将打印出来3.141593


注意: TI-BASIC是一种标记化语言。字符数不等于字节数。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.