编程拼图和代码高尔夫

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

7
宾果卡生成器
宾果卡由5列组成,每列5个正方形,中间的正方形表示为“ FREE”。数字不能重复。 这五列中填充了以下数字范围: 乙:1-15 I:16-30 N:31-45 G:46-60 O:61-75 用尽可能少的字符输出一个可以解释为随机Bingo卡的字符串。例如: 1,2,3,4,5,16,17,18,19,20,31,32,33,34,35,46,47,48,49,50,61,62,63,64,65 此示例不是随机的,因此我可以显示第1列填充有1,2,3,4,5。另请注意,未对可用空间进行任何特殊处理,因为解释此字符串的前端将跳过它。 另一个示例是: 1,16,31,46,61,2,17,32,47,62 ... 在此示例中,输出按行而不是按列。 第三个示例可能是: 01020304051617181920313233343546474849506162636465 除固定长度外,此输出与第一个示例相同。
10 code-golf  game 

5
制作一个简单的IRC机器人。
任务 制作一个简单的IRC机器人,它执行简单的任务,例如问候用户。 详情 (您可能会看到此RFC文档。) 编写一个完整的程序来执行以下操作: 程序输入nickname和realname来自用户。 应该允许所有nickname和realname哪种形式[A-Za-z0-9]+,但是是否允许其他形式并不重要。例如,如果用户想要1234qwerty的nickname和5319009作为realname,程序应使用这些名称,但该程序是否可以使用它并不重要^^☆Rick Astley☆^^(包括非字母和小数)为(nickname或realname)或没有,甚至认为这个名字可能会被拒绝由服务器。 程序serverAddress从用户输入。 形式serverAddress为serverIP:serverPort,其中serverIP是服务器的IP地址,是服务器serverPort的端口号。 该程序连接到serverPortIRC服务器上的端口serverIP,并且应该通过发送和将其昵称设置为nickname和实名。realnameUSER realname 0 * :realnameNICK nickname 该程序输入一个channelName不包含的单#,并加入频道#channelName。 像这样Hello, world!向#channelName频道发送私人消息:PRIVMSG #channelName :Hello, world! 然后,程序执行以下操作: 答:如果有人加入,说他问候Hello, @!到#channelName,其中@是他的绰号/她。 B.如果程序被踢,请尝试重新加入。 C.如果有人被踢或被禁止,请说POW HAHA。 D.如果某人离开(PART或QUIT),请说Goodbye, @!,其中@是他/她的昵称。 E.如果有人说了一些文字,包括Turing test或turing test说I'm a human!。 F.如果有人说包括的某些文本6*9,请通过发送QUIT :42到服务器退出。 G.如果有人说一些文本all your base are belong to us(不区分大小写),请发送QUIT :What you say!到服务器退出。 H.如果某人说某些文本前面没有空格并且没有执行上述动作,请说出该文本中所有字符(第一个空格除外)的字符码总和。 如果发生错误 如果发生错误(例如连接错误或invalid …

2
Prime Grid游戏
我很开心解决了这个问题,所以我提供了这个高尔夫挑战赛。 该高尔夫的目的是找到可以使用给定指令构造的最大质数。 您应该接受3x3的一位数网格作为输入。(这取决于您要如何执行,但要在程序中指定。) 您可以沿网格正交移动(左,右,上或下),并且在移动时,会不断添加所走过的数字。 例如 1 2 3 3 5 6 1 8 9 假设我们从开始1,我们可以形成数字1236589,但不能形成15。 您必须评估每个开始位置。 如果找不到素数,请打印-1,否则将素数打印。 最短的代码获胜,请确保它在10秒内运行。 玩得开心! 编辑:一次使用一个位置,在整个数量中。 这是一个测试案例 输入: 1 2 3 4 5 6 7 8 9 输出: 69854123

5
第n个具有n个不同素数的数
创建计算A073329的最短函数,程序或表达式,即a(n)是具有n个不同素数的第n个数。输入是要返回的序列中元素的数量。。我不关心整数精度。我只想要算法。对于不支持任意大整数的语言,我们只是假装它们支持。0 < n 您可以通过上面提供的OEIS链接找到测试用例。 更新: 让我明确指出,您需要从程序,函数或表达式返回整数序列。换句话说,f(x)应该计算从1到的a(n)所有值。给定为8,您的函数应以数组或其他适当的数据结构形式返回。nxx2, 10, 60, 420, 4290, 53130, 903210, 17687670
10 code-golf  math 

12
写最快的斐波那契
这是有关斐波那契数的又一挑战。 目标是尽快计算第20'000'000 个斐波那契数。小数输出大约是4 MiB。它开始于: 28543982899108793710435526490684533031144309848579 输出的MD5总和为 fa831ff5dd57a830792d8ded4c24c2cb 您必须提交一个程序,该程序在运行时计算数量并将结果放入stdout。以我自己的机器衡量,最快的程序胜出。 以下是一些其他规则: 您必须提交源代码和可在x64 Linux上运行的二进制文件 源代码必须短于1 MiB,如果只有二进制代码那么小,则在汇编的情况下也可以接受。 即使以变相的方式,也不得在二进制文件中包含要计算的数字。该数字必须在运行时计算。 我的计算机有两个核心。您被允许使用并行 我从Internet上进行了一个小型实施,运行时间约为4.5秒。假设您有一个好的算法,那么克服这一挑战应该不会很困难。

3
飞机导航
您的任务是为当地飞机交付公司计划一条飞行路线。您需要将飞机从A点路由到B点。您只是无法从A点出发,将飞机指向B点,然后再走,因为盛行的风将使您偏离航向。相反,您需要考虑风向,找出应该指向飞机的方向,以便飞机直接飞向B。 输入 7个浮点数,编码为A_x,A_y,B_x,B_y,S,W_x,W_y。这些是起点和终点的坐标,飞机的空速以及沿x轴和y轴的风强度(风吹向的方向,而不是吹向的方向)。 输出 您应打印以度为单位的角度(从x轴正方向逆时针旋转),该角度应指向平面以直线到达B。GROUNDED如果风很大以至于无法旅行,请打印。 您可以四舍五入到最接近的程度,并可以使用任何您想要的方法(向上/向下/最近/ ...)进行。 例子 输入 0 0 10 0 100 0 -50 0 0 10 0 50 -55 0 3.3 9.1 -2.7 1.1 95.0 8.8 1.7 输出 30 GROUNDED 229 最短的代码获胜。
10 code-golf  math 

5
计算从素因数得出的整数序列
创建执行以下操作的函数,表达式或程序: 取任意数量的素数因子并求和。例如,28的素数是2 2 7,总和为11。 将结果乘以给定数素数的数量。例如,28有3个素因,总和为11。11 * 3为33。 递归地重复该过程,存储结果列表(以原始编号开头),直到列表中已经包含一个编号。暂停而不添加该最终编号,以便该列表不包含重复项。28的级数是28 33,因为33再次导致28。 计算结果列表中的元素。对于28,答案为2。 这是的结果0<n<=10,因此您可以检查算法。 2 1 1 10 1 11 1 9 5 10 (正如balpha所指出的higley(1),从列表1 0中得到的答案是2。由于我用J编写的原始算法中的错误,我原来只有1。) 由于我是自负的SOB,并且尚未在OEIS上找到它,因此至少在本轮代码测试期间,我们称其为“ Higley序列”。作为额外的奖励,发现前两个n具有最低的higley(n)地方n是不是素数和n>1。(我认为只有两个,但是我无法证明。) 这是标准代码高尔夫球,因此,通常击键次数最少,但是我想请您用其他语言推荐更聪明的答案,即使它们很冗长。
10 code-golf  math 

1
ASCII艺术方程式可视化器
在没有好的方程编辑器的情况下处理方程是混乱且令人不愉快的。例如,如果我想表达一个积分及其解决方案,它可能看起来像这样: 积分[x ^ 3 e ^(-mx ^ 2 b / 2),dx] =-((2 + b m x ^ 2)/(b ^ 2 * e ^((b m x ^ 2)/ 2) * m ^ 2)) 在积分.wolfram.com上,这称为“输入形式”。没有人喜欢看到“输入形式”的方程式。可视化此方程式的理想方式是: (Wolfram称之为“传统形式”) 对于此代码高尔夫球,编写一个程序,该程序将采用“输入形式”的某些方程作为输入,并以“传统形式”的ascii表示形式可视化该方程。因此,对于此示例,我们可能会得到以下内容: /\ 3 | x | ------------ dx = | 2 \/ (m x b)/2 e …

12
序列的平衡指数
序列的平衡索引是这样的索引,即较低索引处的元素之和等于较高索引处的元素之和。例如,在序列A中: A[0]=-7 A[1]=1 A[2]=5 A[3]=2 A[4]=-4 A[5]=3 A[6]=0 3是均衡指数,因为: A[0]+A[1]+A[2]=A[4]+A[5]+A[6] 6也是一个均衡指数,因为: A[0]+A[1]+A[2]+A[3]+A[4]+A[5]=0 (零元素的总和为零)7不是均衡索引,因为它不是序列A的有效索引。 想法是创建一个给定序列(数组)的程序,并返回其平衡指数(任意);如果不存在平衡指数,则返回-1。
10 code-golf 

13
数字积
对于给定的正整数N,编写一个完整的程序以查找最小自然数M,以使M的数字乘积等于N。N小于1,000,000,000。如果不存在M,则打印-1。在任何情况下,您的代码都不应超过10秒。 Sample Inputs 1 3 15 10 123456789 32 432 1296 Sample Outputs 1 3 35 25 -1 48 689 2899
10 code-golf  math 

9
任意基准转换
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 6年前关闭。 创建一个例程,该例程采用一个数字基本系统中的块数组,然后将其转换为另一数字基本系统中的块数组。from和to系统都是任意的,应该接受为参数。输入数组可以是任意长度(如果使用的语言中数组长度不随数组存储,例如C,则应将length参数传递给函数)。 它的工作方式如下: fromArray = [1, 1] fromBase = 256 toBase = 16 result = convertBase(fromArray, fromBase, toBase); 哪个应该返回[0, 1, 0, 1]或可能返回[1, 0, 1](前导0s是可选的,因为它们不会更改答案的值)。 以下是一些测试向量: 身份测试向量 fromArray = [1, 2, 3, 4] fromBase = 16 toBase = 16 result = [1, 2, 3, …

7
文字圈
在控制台中找到一种使用字符制作给定半径的圆的方法。请指定字体名称和大小。另外,请至少提供一个输出示例。 例如: 输入: 3 输出: ****** ** ** ** ** * * ** ** ** ** ****** ...嗯,比半径为3的“手绘”“圆”看起来更好的东西。 奖励问题:椭圆。:)

4
多项式长除法
实现多项式长除法,该算法将两个多项式相除并获得商和余数: (12x ^ 3-5x ^ 2 + 3x-1)/(x ^ 2-5)= 12x-5 R 63x-26 在程序中,您将多项式表示为数组,常数项位于尾部。例如,x ^ 5-3x ^ 4 + 2x ^ 2-x +1将变为[1,-3,0,2,-1,1]。 您将要编写的长除法函数将返回两个值:商和余数。您不需要处理数值不精确和算术错误。不要使用数学库来完成工作,但是,您可以使函数能够处理符号值。最短的代码获胜。 例: div([12, -5, 3, -1], [1, 0, -5]) == ([12, -5], [63, -26])

13
画一个BCD二进制时钟
用ASCII 创建一个BCD 二进制时钟。如所暗示的,它将以六点点显示时间: (来源:Wikimedia Commons) 每列都是二进制编码的数字,从左到右读取小时,分钟和秒。小时以24小时格式给出。 显示时间是从命令行或从stdin(以更合适的为准)中读取的。如果为空,则应使用当前时间。 这里的输出大小受到一些限制,我们只能容纳两行文本。因此,您需要将点仅放入两行。字符.,:并'在方便的来到这里。 输入值 以ISO-8601格式显示的时间,即HH:MM:SS无小数秒。强制性的24小时制。输入可以为空,在这种情况下将使用当前时间。 输出量 上图的两行代表BCD二进制时钟。每行正好是六个字符长,并且只能使用空格,句点,冒号和撇号。 优胜者 以字节数为单位的最短代码获胜。在平局中,解决方案取得了第一个胜利。 样品输入1 (空) 样品输出1 . ''. :: 样品输入2 17:59:20 样品输出2 ..' .:..' 样品输入3 01:08:01 样品输出3 ' . .

20
计算获得抛硬币一半头的概率。
编写一个程序,给定标准输入的一个小的正偶数,它计算出翻转多个硬币将导致正面数目减少一半的概率。 例如,给定2个硬币,可能的结果是: HH HT TH TT 其中H和T是头和尾。有2个结果(HT和TH)的正面数是硬币数量的一半。共有4个结果,因此概率为2/4 = 0.5。 这比看起来简单。 测试用例: 2 -> 0.5 4 -> 0.375 6 -> 0.3125 8 -> 0.2734375

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.