首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用TI-BASIC提供的高尔夫球技巧

使用TI-BASIC提供的高尔夫球技巧
EN

Code Golf用户
提问于 2015-06-23 05:01:00
回答 11查看 1.5K关注 0票数 27

在TI-基本的TI-83/84+系列计算器中,你有哪些一般的高尔夫技巧?我正在寻找的想法,可以应用于代码高尔夫问题,并至少在一定程度上特定于TI-BASIC (例如,“删除评论”不是一个答案)。

请给每一个答复发一条小费。

EN

回答 11

Code Golf用户

发布于 2015-06-23 16:39:10

使用Ans

如果仅在下一行中使用表达式,则不要将其存储到变量中!特殊的Ans变量是一个单字节令牌,它存储最后一个表达式的值。因此:

代码语言:javascript
复制
Xsin(A)->R
Disp R+tanh(R

可以是

代码语言:javascript
复制
Xsin(A)
Disp Ans+tanh(Ans

保存两个字节。

票数 15
EN

Code Golf用户

发布于 2015-06-23 16:14:38

使用以浮点数

编码的查找表。

略显先进的提示:

小型查找表对于代码高尔夫球非常有用:我们通常需要一个函数,例如,0到1、1到2、2到1、以及其他所有映射到0。然而,TI-BASIC数组不适合用于此目的:一方面,它们是基于一个的,另一方面,在数组存储在Ans或列表变量中之前,不能提取值。

在我的答案这里中,我将一个小的查找表存储在基11中的一个神奇常量中。

代码语言:javascript
复制
{0,-1,5,-1,-1,2,9,-1,8,6}

转换成有用的形式

代码语言:javascript
复制
{1,0,6,0,0,3,10,0,9,7}

写在你想要的基础上(基数11)

代码语言:javascript
复制
.106003A097

并转换为基数10

代码语言:javascript
复制
-1+int(11fPart(11^Ans.0954191904

最短的数组方法是8个字节长!

代码语言:javascript
复制
{1,0,6,0,0,3,10,0,9,7}-1:Ans(X+1

TI-BASIC只存储浮动到14位小数位,所以您可以存储多达44位,但只有14位小数。

这种技术通常可以通过使用蛮力搜索来找到一个神奇的常数而不是基-N编码来进一步改进。我仍然在给上面的答案打高尔夫球,但是这个加长的TI-基本高尔夫球手Weregoose 用这种方法在wiki/论坛TI-BASIC开发人员上用这个片段生成了与30相同的数字之间的差异(也就是重复的6, 4, 2, 4, 2, 4, 6, 2列表):

代码语言:javascript
复制
2+2iPart(3fPart(576e^(fPart(I/8

魔法常量576是用Mathematica找到的,但是如果你没有拷贝,就用你最喜欢的语言写一个脚本。

票数 10
EN

Code Golf用户

发布于 2015-07-11 03:59:24

跳过不必要的变量初始化

当前的共识是允许在新的解释器上运行所有代码。我们可以利用这一点-所有未初始化的实际变量都从TI-BASIC中的0开始,而Xmin作为可能有用的值-10启动。因此,如果您需要在不接受Ans输入的程序中获取运行的总数,或者您确实需要少一个字节的-10,那么这个技巧可以帮助您。

票数 6
EN
页面原文内容由Code Golf提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://codegolf.stackexchange.com/questions/52042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档