迷宫,28 25 24 23 22字节

" >

?!?:|}\{@

@\?"":)!

这太疯狂了!:)那是到目前为止我编写的最密集的迷宫程序。我有20个和21个字节的太多版本,几乎可以正常工作了,我仍然怀疑这是最佳的...

这会将输入作为正整数列表(带有任意定界符),并将结果以换行分隔的整数打印到STDOUT。

寻找20/21字节:我已经检查了所有形式的程序

" XX

?!?X}\{@

@\?XX)!

X用蛮力在哪里有任何合理的品格,却没有找到有效的解决方案。当然,这并不意味着不存在一个更短的解决方案,但是在没有相当多的结构假设的情况下,不可能强制执行20字节的程序。

说明

(解释有些过时,但是我仍然不相信该解决方案是最佳的,因此我将等待更新。)

因此,通常迷宫程序看起来像迷宫。当指令指针在走廊中时,它将跟随该走廊。当IP遇到任何类型的连接时,将根据Labyrinth主堆栈的最高值来确定方向(Labyrinth有两个堆栈,底部有无限数量的零)。这通常意味着任何非平凡的循环都会非常昂贵,因为如果您到处都是非墙单元,那么所有东西都是结点,并且在大多数情况下,堆栈顶部的IP值不正确走你想走的路。因此,您要做的是放大循环,使它们在中心具有一个整体,每个循环只有一个定义明确的入口和出口点。

但这一次我真的很幸运,一切都很好地融合在一起,以至于我可以将它们压成一团。:)

控制流始于_向南。所述_推零到主堆叠。这看起来像是无操作,但是这增加了(非隐式)堆栈深度1,我们以后需要使用该深度。

?从STDIN读取一个整数。如果没有更多的整数要读取,则将其推为零。在这种情况下,IP继续向南移动并立即@终止程序(因为输入列表为空)。否则,IP向东。

我们现在进入一个非常紧密的循环,有两个出口点:

!?;

\?

;

!将整数打印回STDOUT,仅在堆栈上保留零。IP继续向东移动,并?读取下一个整数。如果那不是零,我们就向右移动并向南移动。?读取另一个(下一个偶数索引)。再说一次,如果那不是零,我们就向右移动并向西移动。

然后\在不更改堆栈的情况下打印换行符,因此我们向右移,向北移动。!打印下一个偶数索引整数。由于现在堆栈上至少有一个(正)奇数索引整数,因此我们一直向右转,循环重复进行。

一旦其中任何一个?到达列表的末尾,它们便将零推入并直接移至相应的;,从而丢弃该零。

在列表中只有一个元素的情况下,我们已经完成了(因为我们已经立即打印了该元素),所以IP会一直向东移动到@,再次终止程序(打印尾随换行)。

否则,我们还需要打印奇数索引整数。在这种情况下,两条路径(从第一个循环的两个出口点开始)在中间合并",在两种情况下都向东。

_推送零以避免将左移@,并;丢弃该零。现在我们进入一个新循环:

"}

""

IP在左下角的单元格中进入此地址,向北移动,以顺时针方向绕环行。将}主堆栈的顶部移至辅助堆栈。尽管堆栈中仍然有一个元素,但IP仍在继续其工作。一旦一切都转移到辅助堆栈(并在过程中反转),IP继续向东移动,进入最后一个循环:

\{@

#!

\再次打印换行符,{将项目从辅助纸叠移回主纸叠。如果那仍然是列表中的一项,它将为正,并且IP转向南(在该处打印该项)!。然后#推入堆栈深度(现在这是初始位置_很重要的位置,因为这#确保了正的堆栈深度),这样IP 便会通过\和{再次右移。

在我们打印{完所有内容之后,从辅助堆栈的底部拉零,IP继续向东,并@终止程序。

matlab索引奇数,将列表分为偶数索引部分和奇数索引部分相关推荐

  1. c语言输入一批正整数 求其中的偶数和,编程,输入一批整数,先求出其中的偶数和及奇数和,然后输出偶数和与奇数和的差...

    设计一个程序,要求输入三个整数,能求出其中最大的数并输出 #includeintmain{inti;inta1,a2,a3;printf("输入三个数:\n");scanf(&qu ...

  2. python列表根据值找索引_python实现列表中由数值查到索引的方法

    python实现列表中由数值查到索引的方法 如下所示: 以上这篇python实现列表中由数值查到索引的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们. 时间: 201 ...

  3. python字符串索引局部变量_4. 列表一学完,Python 会一半,滚雪球学 Python【七日打卡】...

    滚雪球学 Python,目标就是让 Python 学起来之后,越滚越大. 本系列文章将在2021年春节前完成,欢迎关注,点赞,评论 --- 梦想橡皮擦 四.列表一学完,Python 会一半 4.1 列 ...

  4. pandas将dataframe的索引转化为列表list数据(convert dataframe index into a list)

    pandas将dataframe的索引转化为列表list数据(convert dataframe index into a list) 目录 pandas将dataframe的索引转换为列表list数 ...

  5. 获取列表中最大N个数的索引

    获取列表中最大N个数的索引 前言 一.使用步骤 1.引入库 2.编写函数 前言 我们在处理数据过程中,经常需要查询list中最大的N个数对应的索引,目前的一些方法应对具有重复值的list会发生诸多问题 ...

  6. Python入门--列表的查询操作--获取列表知道那个元素的索引、获取列表中的单个元素、获取列表中的多个元素

    #列表的查询操作 #获取列表中指定元素的索引 #index()-->如果列表中存在N个相同的元素,只返回相同元素中的第一个索引 # -->如果查询的元素在列表中不存在,则会抛出Valuee ...

  7. 微信小程序点击--实现带字母索引的城市列表

    哈哈 先上图看看是不是这种效果   因为比较穷 所以录制的gif格式图片有水印 之前在网上搜索了好多这种格式的,感觉代码都好多  如果只是点击然后跳转到相应的位置是比较简单的 主要用到的知识就是 sc ...

  8. Python列表(获取列表中指定元素的索引、获取列表中的多个元素、判断指定元素是否在列表中存在、列表元素的遍历、列表元素的增加操作、 列表元素的删除操作、列表元素的修改操作、列表元素的排序操作)

    1.获取列表中指定元素的索引 eg1:未指定索引范围查找索引 zyr=['憨憨','憨宝'] print(zyr.index('憨宝')) print(zyr[1]) eg2:在指定索引范围内查找元素 ...

  9. python获取列表中最大N个数及其索引

    python获取列表中最大N个数及其索引 写作目的 步骤 结果展示 写作目的 主要是看到别人的基本都是利用hepap排序,感觉还挺麻烦的 步骤 import pandas a=[5,2,6,7,9] ...

最新文章

  1. P2642 双子序列最大和(线性DP)(最大子段和 + 合唱队列)
  2. 通用数据级别权限的框架设计与实现(4)-单条记录的权限控制
  3. CentOS下一键安装GitLab
  4. java参数传入的是一个类名_Java编程细节——泛型的定义(类、接口、对象)、使用、继承...
  5. ThinkPHP5.1开启调试和错误提示
  6. 教程 | MySql都会了,确定不学习一下MyCat分片?
  7. Spring框架----基于子类的动态代理
  8. NOD32离线升级更新包使用方法
  9. ImageMagick图片转PDF
  10. Magicodes.IE已支持通过模板导出票据
  11. SitePoint播客#128:我最不喜欢的10岁
  12. 高数 | 【多元函数微分学 计算篇】链式求导法、隐函数求导法、全微分形式不变性、多元函数求极值
  13. 谈谈用统一网关gate的利与弊
  14. 关于计算机英语演讲ppt模板,英语演讲ppt模板(英语演讲8分钟ppt模板) 最新免费版...
  15. 跟益达学Solr5之使用Ansj分词器
  16. js new Date() 当前时间/指定时间转换为时间戳
  17. Python求矩阵的逆矩阵
  18. 二层三层网络协议-网关
  19. 大二上---数据结构课程设计
  20. 摩拜服务器维护,摩拜单车云服务器

热门文章

  1. 什么浏览器有html控制台,怎么打开浏览器的js控制台
  2. aixcoder邀请码
  3. 2021-05-02
  4. C字符串操作strlen/strnlen_s详解
  5. MFC连接SQL数据库操作
  6. 字节跳动面试前端岗,刷算法题有救吗?
  7. 广告位招租C: City
  8. 20160829-你拥有的最宝贵的财富是什么?
  9. 拼多多“造血”新农商
  10. 第二届Stata中国用户大会暨“计量经济方法及应用研讨会”会议通知