挑战
塑性数是一个与黄金比率有关的数字,具有许多有趣的数学性质。因此,有许多方法可以用来计算数字。
为了精确地为这个挑战指定数字,我们将使用以下定义(尽管有许多等价的定义,而且只要定义相同,就可以使用任意定义):
塑料数是一个实数ρ,所以是ρ。
您的挑战是编写一个程序或函数,该程序或函数以整数x作为输入(x> 1),并生成与ρ近似的输出,这样x的值越大,输出就越接近ρ(最多只有有限多个例外;为此目的,保持相同的值算作“更接近”),对于任何正数δ,对程序都有一些输入x,从而产生在ρ的δ中的输出。
1.3247179572
)格式化输出,或者将两个整数的比例设置为两个整数之间的/
字符。以下是塑料数字的前几位数字:
1.32471795724474602596090885
更多的数字是可用的论OEIS。
与通常的密码-高尔夫一样,以字节来衡量,更短的是更好的。但是,即使他们没有获胜,也可以随意发布答案,只要他们在现有的答案中添加了一些东西(例如,不同的语言,或者不同的算法)。
发布于 2017-06-16 03:46:00
n=x=input()
while n**3/x/x<n+x:n+=1
print n,'/',x
其思想是将ρ
用ρ³=ρ+1
表示为分数n/x
,分母x
是输入精度参数。我们用(n/x)³=n/x+1
和明确的分母来得到n³=x²(x+n)
。
由于n
中LHS的增长速度快于RHS,所以我们可以用n³≥x²(x+n)
近似于等值点n
。代码会对n
进行计数,直到出现这种情况,从较小的x
开始。
一个小字节保存是用x²
将两边除以写n³/x²≥x+n
(在while
条件中为否定)。这是代码中的楼层划分,但小数部分的丢失是可以忽略不计的。
另一个相同长度的选项则将x
作为分子:
n=x=input()
while x**3/n/n<n+x:n-=1
print x,'/',n
发布于 2017-06-16 06:20:29
#^3-#-1&~Root~1~N~#&
Root
函数给出了多项式方程f[x] == 0
的解。
#^3-#-1&~Root~1~N~#&
& (* Function *)
#^3-#-1& (* A pure-function polynomial, x^3-x-1 *)
~Root~1 (* Find the first root *)
~N~# (* approximate to (input) digits *)
In[1]:= f=#^3-#-1&~Root~1~N~#&;
f[1]
Out[1]= 1.
In[2]:= f[9]
Out[2]= 1.32471796
In[3]:= f[100]
Out[3]= 1.324717957244746025960908854478097340734404056901733364534015050302827851245547594054699347981787280
发布于 2017-06-16 05:43:11
x/.Solve[x^3==x+1>2,x]~N~#&
-来自Martin的1字节
-来自ovs的2个字节
27
{1.32471795724474602596090885}
https://codegolf.stackexchange.com/questions/126820
复制相似问题