gpt4 book ai didi

befunge - 为什么 Befunge 代码 9332682811>\#+ :#*9-#\_$. @ 输出 52256370?

转载 作者:行者123 更新时间:2023-12-04 15:18:44 27 4
gpt4 key购买 nike

今天我尝试在Esolangs.org上注册一个帐户, esoteric programming languages维基。我之前曾为一些 wiki 做出过贡献,并且我想要贡献一两个小的页面编辑。

...也就是说,直到我看到用于创建新帐户的 CAPTCHA 验证难题。

Captcha puzzle for Esolangs.org

对 CAPTCHA 使用晦涩难懂的语言很可能是一个愚蠢的笑话。然而,我花了将近半个小时试图理解语言,以便我可以创建一个新帐户。

最终我放弃并使用了 online Befunge interpreter ,这给了我答案 52256370 .

我不明白的是为什么 9332682811>\#+:#*9-#\_$.@ 的输出是 52256370 .

我看到一些评论表明它是从 base-10 到 base-9 的转换。但是,当我尝试通过转换 9332682811 进行验证时带有 online base converter , 我得到了 26072072027 的结果.

最佳答案

该程序解析 332682811作为一个小端基数为 9 的整数,并以基数 10 打印它。

Befunge 解释二维网格(或环面,取决于版本)上的指令,指令指针可以在二维中自由移动。这个程序是单行的,所以指令指针只能向前和向后移动。
9332682811将这些数字单独压入 Befunge 的值堆栈,然后以下指令执行一个简单的循环。在循环的正常迭代中,事情看起来像这样:

Instructions              Meaning                                       Top stack values

9332682811>\#+:#*9-#\_$.@
> Set the instruction pointer to travel a b
to the right.
\ Swap the top 2 values on the stack. b a
#+ Nothing, since # means b a
skip the next instruction.
: Duplicate the top value on the stack. b a a
9 Push 9. b a a 9
- Pop two values and push their difference. b a (a-9)
_ Pop the top value and set the instruction b a
pointer traveling right if the value is 0
or left otherwise.
\ Swap the top 2 values. a b
9 Push 9. a b 9
* Pop two values and push their product. a (b*9)
+ Pop two values and push their sum. (b*9 + a)
> Set the instruction pointer traveling
right again.

因此,除非迭代开始时堆栈上的第二个值是 9,否则迭代会弹出两个值 ba并推 b*9 + a .

如果第二个值为 9,则循环终止并打印最高值:
Instructions              Meaning                                       Top stack values

9332682811>\#+:#*9-#\_$.@
_ Pop the top value and set the instruction b a
pointer traveling right if the value is 0
or left otherwise.
$ Discard the top value. b
. Pop and print the top value.
@

所以,综上所述,程序推了一堆数字,反复替换 abb*9+a直到碰到9,信号停止。这是一个 base 9 转换器。

如果您尝试使用 another base converter 来验证这一点,确保你得到正确的字节序。 332682811是小端的,所以你可能需要反转它。

关于befunge - 为什么 Befunge 代码 9332682811>\#+ :#*9-#\_$. @ 输出 52256370?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45223117/

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