编程拼图和代码高尔夫

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

8
确定硬币系统是否规范
该出纳的算法是在最小的硬币数量是工作得很好大多数货币体系进行改变的算法。但是,像大多数贪婪算法一样,它并非没有缺陷。如果建立的货币系统恰好正确(或错误),那么某些值会使收银员算法无法找到最佳找零。 请看以下示例: 我们有4¢,3¢和1¢硬币。我们想赚6美分。 出纳员算法将首先选择尽可能多的最大硬币(开始时为4美分),然后减去并重复。这将产生1个4¢硬币和2个1¢硬币,总共3个硬币。 不幸的是,对于该算法,有一种方法只能用两个硬币(两个3¢硬币)赚取6¢。 对于所有整数值,找零系统将被认为是标准的,而Cashier算法将找到最佳硬币数量。 任务 您的任务是将系统当作代表硬币值的整数的无序容器或已排序的有序容器,如果系统输入为标准值且为假,则输出真实值。 您的程序应适用于可以创造任何价值的所有系统。(即所有系统都将有1美分的硬币) 这是代码高尔夫最少字节获胜的代码。 测试用例 此列表绝不是详尽无遗的,您的程序应适用于所有有效输入 1, 3, 4 -> 0 1, 5, 10, 25 -> 1 1, 6, 10, 25 -> 0 1, 2, 3 -> 1 1, 8, 17, 30 -> 0 1, 3, 8, 12 -> 0 1, 2, 8, 13 …

30
黄金收藏家KoTH
注意:针对社区最爱的调查即将发布 在此KoTH中,目标是成为最后一个存活的机器人。硬币将放置在随机区域中,并且您的机器人必须先获取硬币。如果一个机器人遇到另一个机器人,则拥有更多硬币的机器人将获胜,而另一个机器人死亡。下面有更多详细信息。 硬币种类 将有两种硬币类型:金和银。金币增加了机器人的力量,金币增加了5,银币增加了2。一旦收集到硬币,另一枚硬币就会放在棋盘的另一个位置。在任何给定时间,竞技场中都有一枚金币和四枚银币。 机器人碰撞 如果有两个机器人试图占据相同的空间,那么一个拥有更多硬币的机器人将会留下,而另一个拥有更少硬币的机器人将会……没有。获胜的机器人将获得85%的对手硬币(四舍五入)。如果绑在一起,两个都死了。如果三个或更多尝试占据相同的空间,则最有力的获胜,并获得其他所有漫游器硬币的85%。如果最强大的机器人是平手,则所有试图进入太空的机器人都会死亡。 竞技场 竞技场的边长用计算4 + botCount。在游戏开始时放置机器人时,会选择随机位置。该系统确保没有机器人在同一空间或彼此相邻启动。硬币是随机生成的,每个机器人以3乘3平方为中心。如果在竞技场之外发现了机器人,它会立即死亡。竞技场从左上角的(0,0)或西北开始,并且机器人的位置始终是整数。 你的机器人 您的机器人应该是具有数组,整数,字符串和函数的任何面向对象语言的函数。请注意,所有提交都将转换为Javascript,以使事情变得简单。要在移动之间存储信息,请使用botNotes.storeData(key, value)和botNotes.getData(key, value)。除了通过参数和提供的数据外,您不能以任何方式存储或访问数据botNotes。您应该创建一个函数,调用它时,返回一个字符串north,east,south,west,或none。该函数将有3个参数: 有四个整数(对象locationX,locationY,coins,arenaLength),您的当前位置,你的硬币,和竞技场的长度 包含其他漫游器的X和Y坐标及其硬币计数的多维数组,例如[[0,5,4],[4,7,1],[7,4,12]] 列出硬币位置的数组(黄金始终位于第一位) 这是挑战之王,禁止使用标准漏洞。您的函数将运行数千次,每次允许一次“移动”。请注意,如果游戏超过20,000步,则获胜最多的机器人将获胜。将执行8,000次以消除随机性。 聊天室: https ://chat.stackexchange.com/rooms/81347/gold-collectors-koth 奖品: 第一名:奖励100分 社区最爱:接受15分的答案 获奖者: 第一名: TBTPTGCBCBA 第二名:大国王Little Hill 第三名:潜在胜利 第四名:有礼貌的近视醉酒机器人 第五名:安全币

30
打印所有整数
编写一个程序或函数,一旦给定了无限的时间和内存,该程序或函数将精确地打印所有整数。 可能的输出可能是: 0, 1, -1, 2, -2, 3, -3, 4, -4, … 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -2, -3, -4, -5, -6, -7, -8, -9, 10, 11, … 这不是有效的输出,因为它永远不会枚举负数: 0、1、2、3、4、5、6、7、8、9、10、11… 输出必须为十进制,除非您的语言不支持十进制整数(在这种情况下,请使用您语言使用的整数的自然表示形式)。 您的程序必须处理语言中标准整数类型最大的数字。 每个整数必须使用任何不是数字也不是语言负号的分隔符(空格,逗号,换行符等)与下一个分隔。 分隔符在任何时候都不得更改。 分隔符可以由多个字符组成,只要它们都不是数字也不是负号(例如, ,与一样有效,)。 最终必须在有限的时间后打印所有受支持的整数。 计分 这是代码高尔夫球,因此最短答案以字节为单位 排行榜 显示代码段 var QUESTION_ID=93441,OVERRIDE_USER=41723;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function …

17
边缘骑士是冷酷的
介绍 阿伦·尼姆佐维奇(Aron Nimzowitsch)是一位领先的国际象棋大师和一位有影响力的国际象棋作家。 在他的书“我的系统”中,第一章讨论了中心的重要性以及为什么要主导中心。原因很简单,当您位于中心位置时,您的棋子有更多可能的直接下一步动作,这又使玩家拥有更大的力量。 当查看骑士的不同位置及其在空板上的潜在下一步动作(以粉红色显示)时,这一点非常清楚: 目的 根据骑士的位置,评估骑士在空板上可能进行的直接下一步行动的次数。 输入规格 骑士的位置。 首先是x(列),然后是y(行)。0 0是左下角。 为简单起见,我将棋盘的标签更改为仅数字。对于我们的示例和测试案例,我们使用基于0的索引,但是您可以自由使用基于1的索引。 您可以使用任何类型的可能的输入格式,数组,函数参数等。 输出规格 空板上一个骑士的潜在直接下一步移动次数。 测试用例 3 4 => 8 4 6 => 6 7 7 => 2 1 0 => 3 测试用例采用基于0的索引。完整的值网格为: 2 3 4 4 4 4 3 2 3 4 6 6 6 6 4 3 4 …
48 code-golf  math  chess 

30
字母三角形
您将打印此确切文本: A ABA ABCBA ABCDCBA ABCDEDCBA ABCDEFEDCBA ABCDEFGFEDCBA ABCDEFGHGFEDCBA ABCDEFGHIHGFEDCBA ABCDEFGHIJIHGFEDCBA ABCDEFGHIJKJIHGFEDCBA ABCDEFGHIJKLKJIHGFEDCBA ABCDEFGHIJKLMLKJIHGFEDCBA ABCDEFGHIJKLMNMLKJIHGFEDCBA ABCDEFGHIJKLMNONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXYXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXYZYXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXYXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWXWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVWVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUVUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTUTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSTSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRSRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQRQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPQPONMLKJIHGFEDCBA ABCDEFGHIJKLMNOPONMLKJIHGFEDCBA ABCDEFGHIJKLMNONMLKJIHGFEDCBA ABCDEFGHIJKLMNMLKJIHGFEDCBA ABCDEFGHIJKLMLKJIHGFEDCBA ABCDEFGHIJKLKJIHGFEDCBA ABCDEFGHIJKJIHGFEDCBA ABCDEFGHIJIHGFEDCBA ABCDEFGHIHGFEDCBA ABCDEFGHGFEDCBA ABCDEFGFEDCBA ABCDEFEDCBA ABCDEDCBA ABCDCBA ABCBA …

10
星期一迷你高尔夫#6:Meeesesessss upp teeexexextext
星期一迷你高尔夫:每周一发布(希望!)一系列简短的代码高尔夫挑战赛。 真实故事1:前几天,当我有想法去访问我通常在PC上用于测试JavaScript 的页面时,我正在平板电脑上玩耍。页面加载后,我输入了以下简单程序: alert("Hello!") 然后,我继续按Execute按钮,当它告诉我输入的代码无效时,我感到很惊讶。我再次查看了文本框,并看到了以下内容: alllelelerlerlertlert("Heeelelellellelloello!") 哇??? 那不是我输入的!那这里怎么了 为了弄清楚,我输入了两个简单的行: abcdefg 0123456 结果是: abbbcbcbcdbcdbcdebcdebcdefbcdefbcdefgbcdefg 0112123123412345123456 到目前为止,我仍然不知道字母发生了什么,但是数字似乎更简单,所以我仔细看了一下。事实证明,该网页只是输入第一个字符,然后在每次按下新的字符时重复字符串中的所有其余字符: 0112123123412345123456 0 1 12 123 1234 12345 123456 但是字母部分呢?经过一分钟的思考,我意识到它是相同的,但是没有重复每个小节一次,而是重复了两次: abbbcbcbcdbcdbcdebcdebcdefbcdefbcdefgbcdefg a bb bcbc bcdbcd bcdebcde bcdefbcdef bcdefgbcdefg 两种作品的结合以及这些技术的结合: abc123z abbbcbcbc1bc12bc123bc123zbc123z a bb bcbc bc1 bc12 bc123 bc123zbc123z 无论是什么故障引起的,这似乎都在标点和空格处重置,因此abc def变为abbbcbc deeefef。 在这一点上,我全神贯注于将其弄清楚并将其变成一个有趣的挑战,以至于我忘记了为什么我一直在那儿。(不过,我确实弄清楚了如何正常键入:在每个字符后按空格键。这很繁琐,但是您必须执行操作。) 挑战 挑战的目标是编写一个程序或函数,该程序或函数接受要处理的文本,进行上面列出的更改,然后输出/返回结果。 细节 输入将仅包含可打印的ASCII,并且没有制表符或换行符。 …
48 code-golf  string 

3
最短的通用迷宫出口绳
通过指定每个边缘是墙还是墙来定义方形单元的N x N网格上的迷宫。所有外边缘均为墙。一个单元格定义为开始,一个单元格定义为退出,并且从开始即可到达出口。开始和退出永远不会是同一单元格。 请注意,起点和出口都不必位于迷宫的外部边界,因此这是有效的迷宫: 字符串“ N”,“ E”,“ S”和“ W”表示试图分别向北,向东,向南和向西移动。被墙壁阻止的移动将被跳过而不会移动。如果从头开始应用该字符串会导致到达出口,则该字符串会退出迷宫(无论该字符串在到达出口后是否继续)。 灵感来自这个puzzling.SE问题,针对同或提供一个解决的方法可证明具有很长的字符串,编写代码,可以发现,通过3迷宫退出任何3一个字符串。 排除无效的迷宫(在同一单元格上开始和退出,或无法从开始到达出口),有138,172个有效迷宫,并且字符串必须退出每个迷宫。 有效期 该字符串必须满足以下条件: 它仅由字符“ N”,“ E”,“ S”和“ W”组成。 如果从头开始,它将退出应用到的所有迷宫。 由于所有可能的迷宫都包括每个可能的迷宫以及​​每个可能的有效起始点,因此这自动意味着字符串将从任何有效的起始点退出任何迷宫。也就是说,从可以到达出口的任何起点开始。 获奖 获胜者是提供最短有效字符串并包括用于生成它的代码的答案。如果有多个答案提供了最短的字符串,则第一个提交该字符串长度的用户将获胜。 例 这是一个长度为500个字符的示例字符串,可以给您带来一些帮助: SEENSSNESSWNNSNNNNWWNWENENNWEENSESSNENSESWENWWWWWENWNWWSESNSWENNWNWENWSSSNNNNNNESWNEWWWWWNNNSWESSEEWNENWENEENNEEESEENSSEENNWWWNWSWNSSENNNWESSESNWESWEENNWSNWWEEWWESNWEEEWWSSSESEEWWNSSEEEEESSENWWNNSWNENSESSNEESENEWSSNWNSEWEEEWEESWSNNNEWNNWNWSSWEESSSSNESESNENNWEESNWEWSWNSNWNNWENSNSWEWSWWNNWNSENESSNENEWNSSWNNEWSESWENEEENSWWSNNNNSSNENEWSNEEWNWENEEWEESEWEEWSSESSSWNWNNSWNWENWNENWNSWESNWSNSSENENNNWSSENSSSWWNENWWWEWSEWSNSSWNNSEWEWENSWENWSENEENSWEWSEWWSESSWWWNWSSEWSNWSNNWESNSNENNSNEWSNNESNNENWNWNNNEWWEWEE 感谢orlp捐赠了这个。 排行榜 相等分数按该分数的发布顺序列出。这不一定是答案发布的顺序,因为给定答案的分数可能会随时间更新。 法官 这是一个Python 3验证器,它使用NESW字符串作为命令行参数或通过STDIN。 对于无效的字符串,这将为您提供失败的迷宫的直观示例。

30
交换字母
在此挑战中,您将“反转”字母或a-z与交换z-a。这通常称为Atbash密码。 因为此转换使输出看起来像某种外语,所以您的代码将需要尽可能短。 例子 abcdefghijklmnopqrstuvwxyz zyxwvutsrqponmlkjihgfedcba Programming Puzzles & Code Golf Kiltiznnrmt Kfaaovh & Xlwv Tlou Hello, World! Svool, Dliow! 规格 输入可能包含多行,并且只能是ASCII码 没有 额外的空格应该被添加到输出 案件必须保留 排行榜 显示代码段 var QUESTION_ID=68504,OVERRIDE_USER=40695;function answersUrl(e){return"https://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"https://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in s)s.hasOwnProperty(o)&&t.push(s[o]);t.sort(function(e,s){return e.lang>s.lang?1:e.lang<s.lang?-1:0});for(var c=0;c<t.length;++c){var …
48 code-golf  string 

30
打印乐高积木
这一挑战是一种简单的科学技术挑战。给定两个输入来描述乐高积木的高度和宽度,您已经打印了它的ASCII美术表示形式。 这是乐高积木的外观: (4, 2) ___________ | o o o o | | o o o o | ----------- (8, 2) ___________________ | o o o o o o o o | | o o o o o o o o | ------------------- (4, 4) ___________ | o o o o …

6
对字符串加香
霍多尔(Hodor)在《权力的游戏》(Game of Thrones)节目中是个头脑笨拙但讨人喜欢的角色(当然,他也在书中)。他曾经说过的唯一一句话是“霍多尔”。 令人惊讶的是,尽管词汇量不多,但霍多尔总是用完整的句子说出正确的大写和标点符号,并且实际上传达了含义。 Hodor能够表达所有128个ASCII字符,尽管他要用一个完整的句子说每个字符。每个字符都有一个准确的句子表示形式。通过将字符串中的所有字符翻译成它们的Hodor句子等效项,然后将所有句子连接起来,对ASCII字符串进行Hodorized。由于所有字符都映射为准确的句子,因此所有ASCII字符串都具有单个唯一的Hodorized表示形式。 加香字符 霍多尔通过对代表字符的句子使用4种不同的标点符号,将他的128个可表达字符分为4组,每组32个。 句子以...结尾 .如果ASCII字符代码mod 4为0。 .[newline][newline] (对于新段落),如果代码mod 4为1。 ? 如果代码mod 4为2。 ! 如果代码mod 4为3。 例如,的ASCII字符代码为b98,而98的mod 4为2,因此Hodor的句子b肯定以结尾?。 该句子的内容是仅包含单词“ hodor”的32个不同的字符串之一。特定标点类型的32个字符中的每个字符都映射到不同的句子内容字符串。因此,使用32个句子内容字符串和4种标点符号类型,所有128个ASCII字符都可以表示为不同的Hodor句子。 要确定具有ASCII码C的字符的句子内容,请计算(floor(C / 4) + 16) mod 32;该列表中该行上冒号之后的所有内容均为句子内容: 0:Hodor 1:HODOR 2:Hodor hodor 3:Hodor, hodor 4:Hodor hodor hodor 5:Hodor, hodor hodor 6:Hodor hodor hodor hodor 7:Hodor hodor, hodor hodor …
48 code-golf  string 

3
计算机生成的纹理墙面涂料
我房间墙壁上的油漆具有随机的,几乎像分形的3维纹理: 在这个挑战中,您将编写一个程序,该程序生成看起来像是我墙壁的一部分的随机图像。 下面,我收集了墙壁上10个不同点的图像。全部具有大致相同的照明,并且全部是在相机距离墙壁一英尺的地方拍摄的。均匀地裁剪边界以使其为2048 x 2048像素,然后将它们缩放为512 x512。上面的图像是图像A。 这些只是缩略图,单击图像可查看完整尺寸! A: B:C:D:E: F: G:H:I:J: 您的任务是编写一个程序,该程序以1到2 16的正整数作为随机种子,并且为每个值生成一个独特的图像,看起来像是我墙的“第十一张图像”。如果有人看着我的10张图片,而您的几张却不知道是计算机生成的,那您做得很好! 请展示一些您生成的图像,以便观众无需运行代码即可查看它们。 我意识到图像中的光照强度或颜色并不完全均匀。对此我感到抱歉,但是如果没有更好的照明设备,这是我能做的最好的事情。您的图像不需要具有可变的光照(尽管可以)。纹理是更重要的重点。 细节 您可以使用图像处理工具和库。 以所需的任何常用方式(命令行,stdin,明显变量等)进行输入。 输出图像可以是任何常见的无损图像文件格式,也可以仅在窗口/浏览器中显示。 您可以以编程方式分析我的10张图像,但不要假定运行您的代码的每个人都可以访问它们。 您必须以编程方式生成图像。您可能没有对我的一张图片或其他一些图片的略微变体进行硬编码。(无论如何,人们会为此拒绝您。) 您可以使用内置的伪随机数生成器,并假定周期为2 16或更大。 计分 这是一次人气竞赛,因此赢得最高投票的答案会赢得胜利。

6
MS Paint被低估
MS Paint总是很浪费时间,但是大多数图形设计师都回避了。可能是因为令人讨厌的调色板或有限的撤消级别使人们失去了兴趣。无论如何,仅使用标准画笔和默认调色板仍然可以生成精美的图像。 挑战 仅使用默认画笔(无角的4x4正方形)和默认调色板(下面的28种颜色),尝试使用基于随机爬山的技术复制源图像。 算法 每个答案必须遵循相同的基本算法(随机爬山)。可以在每个步骤中调整细节。甲运动被认为是刷(即点击漆)的行程。 猜猜下一个动作。根据需要猜测下一个运动的(坐标和颜色)。但是,猜测不能引用源图像。 应用猜测。将画笔应用到绘画上以进行移动。 衡量运动的益处。通过参考源图像,确定运动是否有益于绘画(即,绘画与源图像更相似)。如果有好处,请保留机芯,否则丢弃机芯。 重复直到收敛。转到步骤1并尝试下一个猜测,直到算法充分收敛为止。此时绘画应该与源图像非常相似。 如果您的程序不符合这四个步骤,则可能不是随机的爬山程序。我之所以将它标记为一场流行竞赛,是因为目标是基于有限的调色板和画笔来生成有趣的绘画算法。 制约因素 该算法应该以某种方式是随机的。 下一个猜测不应受到源图像的影响。您正在猜测每个新动作,然后检查它是否有帮助。例如,不允许您根据源图像的颜色来确定将画笔放置在何处(这与抖动源图像类似,这不是目标)。 您可以根据需要调整算法的步骤来影响布局。例如,您可以从边缘开始猜测并向内移动,拖动笔刷为每个猜测创建线条,或者决定先绘制深色。您可以参考先前的迭代图像(而不是源图像)以计算下一个所需的运动。这些可以是您想要的限制(即,仅在当前迭代的左上象限内进行猜测)。 只要您不愿意,就可以测量源图像和当前迭代之间的“差异”,只要它不计算其他潜在移动来确定该移动是否被认为是“最佳”即可。它不应该知道当前运动是否是“最佳”运动,而应该知道它是否符合接受标准的公差。例如,它可以与abs(src.R - current.R) + abs(src.G - current.G) + abs(src.B - current.B)每个受影响的像素一样简单,或者是任何众所周知的色差技术一样简单。 调色板 您可以将调色板下载为28x1图像,也可以直接在代码中创建它。 刷 笔刷是一个无角的4x4正方形。这是它的缩放版本: (您的代码必须使用4x4版本) 例 输入: 输出: 您可以在我制作的短片(每个帧为500次迭代)中看到基本算法的进展情况:星夜。初始阶段值得关注:

7
避江
背景 在排版中,河流是一块文本中的视觉间隙,这是由于空间的同时对齐而发生的。这些特别令人讨厌,因为您的大脑似乎在周围视力中更容易拾取它们,从而不断分散您的视线。 例如,以下面的文本块为例,这些行的折断使得行宽不超过82个字符: Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eismod tempor incididunt ut labore et dolore maga aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum …

14
太快,太傅立叶:FFT代码高尔夫
以尽可能少的字符实现快速傅立叶变换。 规则: 最短的解决方案获胜 可以假定输入是一维数组,其长度是2的幂。 您可以使用您选择的算法,但是解决方案实际上必须是快速傅立叶变换,而不仅仅是天真的离散傅立叶变换(也就是说,它的渐近计算成本为)O(NlogN)O(Nlog⁡N)O(N \log N) 编辑: 该代码应实现标准的前向快速傅立叶变换,其形式可以在Wolfram文章的公式(3)中看到, 不允许使用现有标准库或统计信息包中的FFT函数。这里的挑战是简洁地实现 FFT算法本身。

30
将数字除以3,而不使用*,/,+,-,%运算符
在SO上引用此问题(扰流板警报!): 在Oracle采访中已经问过这个问题。 如何在不使用*,/,+,-,%操作符的情况下将数字除以3? 该数字可以签名也可以不签名。 该任务是可解决的,但是请查看是否可以编写最短的代码。 规则: 执行所需的整数除法(/3) 不要使用非基于文本运营商*,/,+,-,或%(或它们的等价物,如__div__或add())。这也适用于递增或递减运算符,例如i++或i--。可以使用运算符进行字符串连接和格式化。也可以将这些字符用于不同的运算符,例如-用于负数的一元运算符,或*在C中表示指针。 输入值可以为正值和负值任意大(系统可以处理的任何值) 输入可以在STDIN或ARGV上,也可以任何其他方式输入 创建最短的代码即可完成以上操作

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.