编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

19
评估多项式表达式字符串
创建一个函数,该函数采用多项式方程式,的值x并返回运算结果。 示例:给定4x^2+2x-5和x=3输出37。这是由于4(3)^2+2(3)-5 假设所有多项式均有效 多项式格式将始终为coefficient(variable)^exponent => 4x^2: 当指数是 1这将是coefficient(variable) => 4x 当系数是1这将是(variable)^exponent => x^2 多项式只是一个变量 禁止使用外部库 系数和变量输入可以是正数和负数。 测试用例 ("3x^3-5x^2+2x-10", 5) => 250 ("10x^4-5x^3-10x^2+3x+50", 3) => 644 ("10x+20", 10) => 120 ("-20x^2+20x-50", -8) => -1490 ("9", 5) => 9 ("8x^2+5", 0) => 5 更新资料 多项式格式将始终为 coefficient(variable)^exponent => 4x^2: 当指数是 1这将是coefficient(variable) => 4x …

2
这是一个韦尔矩阵吗?
有一种n × n矩阵W,称为基本Weyr规范形式。使用以下参考图,此类矩阵由其框描述,并具有以下属性: 主对角线块W¯¯ II是Ñ 我 ×n个我矩阵形式的λ 我Ñ 我其中我Ñ 我是Ñ 我 ×n的我单位矩阵。 Ñ 1 ≥Ñ 2 ≥...≥Ñ ř 第一superdiagonal块w ^ K-1,K为ķ∈2..r是Ñ K-1 ×n个ķ矩阵是行还原梯形形式列满秩,或更简单地说,我Ñ ķ坐在的顶部n k-1 -n k行零。 所有其他块均为0矩阵。 例如: 主对角线块(黄色)使得n i为4、2、2和1。 第一个超对角线块为绿色。 灰色区域由所有其他块组成,都为0。 对于这一挑战,我们将假设λ= 1。 输入值 任何方便格式的0和1的方阵。 输出量 对于输入矩阵是否为Weyr,输出两个不同的值之一。 规则 这是代码高尔夫球。每种语言中的最低字节获胜。适用标准规则/漏洞。 测试用例 表示为行数组。 韦尔: [[1]] [[1,1],[0,1]] [[1,0,1,0,0],[0,1,0,1,0],[0,0,1,0,1],[0,0,0,1,0],[0,0,0,0,1]] [[1,0,0,1,0,0,0,0,0],[0,1,0,0,1,0,0,0,0],[0,0,1,0,0,1,0,0,0],[0,0,0,1,0,0,1,0,0],[0,0,0,0,1,0,0,1,0],[0,0,0,0,0,1,0,0,1],[0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,1]] [[1,0,0,0,1,0,0,0,0],[0,1,0,0,0,1,0,0,0],[0,0,1,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0],[0,0,0,0,1,0,1,0,0],[0,0,0,0,0,1,0,1,0],[0,0,0,0,0,0,1,0,1],[0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,1]] 非韦尔: …

20
给出一个排列,没有彼此相邻的两个连续整数
挑战 给定整数n≥4,输出整数[0,n-1]的置换,其属性是没有两个连续的整数(绝对差为1的整数)彼此相邻。 例子 4 → [1、3、0、2] 5 → [0,2,4,1,3] 6 → [0,2,4,1,3,5] 7 → [0,2,4,1,5,5,6] 您可以改为使用1索引(使用整数[1,n]代替[0,n-1])。 您的代码必须在n的多项式时间内运行,因此您无法尝试所有排列并测试每个排列。

13
康威的黄金游戏
具体来说,就是Conway的PRIMEGAME。 这是John H. Conway设计的一种算法,它使用14个有理数的序列生成素数: A B C D E F G H I J K L M N 17 78 19 23 29 77 95 77 1 11 13 15 15 55 -- -- -- -- -- -- -- -- -- -- -- -- -- -- 91 85 51 38 …

21
升序整数金字塔
输出下面的文本或整数列表(下面有更多详细信息)。 0 10 1 20 11 2 30 21 12 3 40 31 22 13 4 50 41 32 23 14 5 60 51 42 33 24 15 6 70 61 52 43 34 25 16 7 80 71 62 53 44 35 26 17 8 90 81 72 63 …
18 code-golf 

30
填写我的气泡表
今天是我学校的AP考试注册日,当我一丝不苟地浏览所需的信息页面时,这一挑战的念头打动了我。因此,给定一串字母和数字,输出适当填充的气泡图。 规则: 对于输入字符串中的每个字符,用#或@或任何其他合理的符号替换相应列中的该字符(如果您的语言可以处理,则Unicode字符'full_block':█看起来不错) 空格由空白列表示(请参见示例) 有效输入将是一个仅由大写字母,数字和空格组成的字符串。 输入的长度最小为1,最大为32个字符。 输出必须为大写 如果输入长度小于最大长度32,则您的程序仍必须输出其余的空白列 您的程序不必像对待大写字母一样处理小写字母输入,但可以的话可以加分。 板格式: AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC DDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD EEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH IIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII JJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ KKKKKKKKKKKKKKKKKKKKKKKKKKKKKKKK LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO PPPPPPPPPPPPPPPPPPPPPPPPPPPPPPPP QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT UUUUUUUUUUUUUUUUUUUUUUUUUUUUUUUU VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV WWWWWWWWWWWWWWWWWWWWWWWWWWWWWWWW XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ 00000000000000000000000000000000 11111111111111111111111111111111 22222222222222222222222222222222 33333333333333333333333333333333 44444444444444444444444444444444 55555555555555555555555555555555 66666666666666666666666666666666 77777777777777777777777777777777 88888888888888888888888888888888 99999999999999999999999999999999 例子: CODE GOLF -> …

10
交织序列
交错的序列表示一些序列的任意合并。 可以通过从一定数量的列表中将元素逐一追加到列表中,然后每次从某个列表中选择下一个元素来形成交错序列。因此,交错序列将包含与所有列表完全相同的元素,并与所有列表一致。 1个列表的唯一交织是同一列表。 挑战 您面临的挑战是创建一个函数/程序,该函数/程序采用任意数量的序列并输出这些序列的所有可能的交织。 例子 Input: [1, 2], [3, 4] Output: [1, 2, 3, 4] [1, 3, 2, 4] [1, 3, 4, 2] [3, 1, 2, 4] [3, 1, 4, 2] [3, 4, 1, 2] Input: [1, 2, 3, 4, 5] Output: [1, 2, 3, 4, 5] Input: [] …

26
旋转平均
给定输入整数n >= 10,输出该整数的所有重复数据消除旋转的平均值。 例如,对于input 123,旋转为123(不旋转),231(一个旋转)和312(两个旋转)。这些平均值为(123 + 231 + 312) / 3或222。 再举一个例子4928。该旋转是4928,9284,2849,和8492。取这四个数字的平均值等于6388.25。 对于另一实例,对于输入445445,去重复旋转是445445,454454,和544544,所以输出481481。 对于输入777,只有一个重复数据消除的旋转,因此输出为777。 规则 如果适用,您可以假定输入/输出将适合您语言的本机Integer类型。 输入和输出可以通过任何方便的方法给出。 完整的程序或功能都是可以接受的。如果是函数,则可以返回输出而不是打印输出。 禁止出现标准漏洞。 这是代码高尔夫球,因此所有常见的高​​尔夫规则都适用,并且最短的代码(以字节为单位)获胜。

8
渲染ASCII迷宫
看!这是一个ASCII迷宫!太酷了,酷炫的东西。 +-+-----+---+ | | | | | | ++ | | | | ++ +-+ | | | | +-------+ | | | | | +---------+-+ 但是,但是,但是……很难确定迷宫的所有部分都朝着哪个方向前进。我只想绘制布局,迷宫使自己变得无情,没有时间。 如果我可以将其绘制在... ############# # # # # # # ## # # # # ## ### # # # # ######### # # # …

14
高尔夫中国9 * 9多桌
输出下表: 一一得一 一二得二 二二得四 一三得三 二三得六 三三得九 一四得四 二四得八 三四十二 四四十六 一五得五 二五一十 三五十五 四五二十 五五二十五 一六得六 二六十二 三六十八 四六二十四 五六三十 六六三十六 一七得七 二七十四 三七二十一 四七二十八 五七三十五 六七四十二 七七四十九 一八得八 二八十六 三八二十四 四八三十二 五八四十 六八四十八 七八五十六 八八六十四 一九得九 二九十八 三九二十七 四九三十六 五九四十五 六九五十四 七九六十三 八九七十二 九九八十一 或者,如果某些语言不支持汉字,则可以在英语单词中使用前三个字母: OneOneGetOne OneTwoGetTwo TwoTwoGetFou …

8
按混排排序
块随机排序 在块混洗排序是排序的列表的(而人工的)方法。举例说明,其工作方式如下。 [6, 1, 0, 3, 2, 4, -2, -1] Break list into contiguous blocks [6][1, 0][3, 2, 4][-2, -1] Sort each block [6][0, 1][2, 3, 4][-2, -1] Sort blocks lexicographically [-2, -1][0, 1][2, 3, 4][6] Concatenate [-2, -1, 0, 1, 2, 3, 4, 6] 划分为连续块的分区可以任意选择。但是,并不是所有的块选择都会在最后产生一个排序列表: [6, 1, 0, 3, …

25
工厂工人
挑战 工厂工人通常非常努力。但是,他们的工作现在通常被机器取代。 您必须编写一个以数字作为输入的程序。它将打印出10名工人的工厂10次。每次,每个工人都有一个1/input被“解雇”并被机器取代的机会。 输入值 来自STDIN或函数调用的整数。 输出量 10例工厂,每例通常有更多工人被解雇。 输出格式-如何打印工厂 工厂看起来像这样: |0000000000| 要么 |0000011001| 管道代表墙壁,0代表工人,而1代表机器,因此工厂的第一张照片将始终为|0000000000|。 例 输入10 输出: |0000000000| //always start off with this |0000000010| //a 1/10 chance means that this worker lost his job |0000010010| |0010010010| |1010010010| |1010110010| |1010110011| |1010111011| |1010111111| |1110111111| 输入5 输出: |0000000000| //always start here |0000001001| //a 1/5 …

4
建立一个半基数循环奎
半基数环状喹是具有两种状态的环状喹,一种与另一种垂直。 规则 您可以决定要实现的旋转是顺时针还是逆时针。 旋转后,应将代码中的任何空格替换为空格以保留位置。 您的程序必须满足quine的社区定义。 这是代码高尔夫球,因此每种语言中最短的程序将获胜。您的第一个程序用于您的字节数。 禁止出现标准漏洞。 例子 如果您的程序是: $_='print';eval 然后,下一个迭代必须是: $ _ = ' p r i n t ' ; e v a l 要么 l a v e ; ' t n i r p ' = _ $ 必须输出原始程序: $_='print';eval 如果您的程序是: ;$_='; ;$_='; print 然后,下一个迭代必须是: ;; …

1
俄罗斯方块策略
您的任务是实现在分数与代码大小之间取得平衡的Tetris策略。 在此版本的游戏中,四面体旋转并从上方掉入20行10列的网格中。跌落时,它们无法水平旋转或移动。像往常一样,当下落的碎片到达网格底部时,或者当进一步的向下运动会导致与已经占据的正方形发生碰撞时,下落的碎片就会停止。 当n水平线完全填满时,它们同时塌陷,网格n顶部重新填充了空线,并且分数增加了2 n -1点。对于n= 1,2,3,4,分别是1,3,7,15点。线条消失后,某些块可能仍漂浮在空中(没有“ 重力链反应 ”)。 如果当前棋子没有足够的空间显示在所需位置,网格将被清除,当前棋子将被忽略,并且游戏将当前的下一棋子继续。对此没有任何惩罚。 您应该阅读样片流,并决定如何旋转它们以及将它们放到哪里。前瞻的下一块(只有一个)是正确的:你可以看看一块i+1回应之前i,但你必须决定命运的i看着面前i+2。除了输入的最后一部分之外,没有其他可用的预读功能。 Tetromino类型及其旋转按照下表进行编码: type 0 1 2 3 4 5 6 O I Z J L S T ┌────┬────┬────┬────┬────┬────┬────┐ rotation 0 │## │# │## │ # │# │ ## │### │ │## │# │ ## │ # │# │## │ # │ …

9
填写支架
普通括号((),[],<>和{})是很好的和明确的,但有人认为这将是使用非括号字符作为括号是一个好主意。这些字符|和和"是不明确的。例如做 """" 相当于 (()) 要么 ()() 这是不可能的。 例如,当您混合使用类型不明确的方括号时,事情开始变得有趣起来 "|""||""|" 可能是以下任何一个 ([(([]))]),([()[]()]),([()][()]) 任务 您的任务是获取由歧义字符组成的字符串,并输出作者可能想要的所有可能的平衡字符串。 更具体地讲,你的输出可以做出替换所有的字符串平衡|与任一[或]并"用两种(或)。您不应两次输出任何平衡的字符串。 IO 作为输入,您应该采用由|和组成的字符串"。如果您想选择比其他两个不同的角色|,并"担任你可以这样做替代品。您应该输出一个平衡字符串的容器。您可以选择更换[],并()在输出与任何其他两种支架对((),[],<>或{})你的愿望。您的输出格式应在每次运行中保持一致。 计分 这是代码高尔夫球,因此答案将以字节计分,而字节越少越好。 测试用例 "" -> ["()"] "|"| -> [] ||| -> [] """" -> ["(())","()()"] ""|| -> ["()[]"] "|"||"|" -> ["([([])])"] "|""||""|" -> ["([(([]))])","([()[]()])","([()][()])"]

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.