Questions tagged «fewest-operations»

最小操作度量在运行时执行的指定“操作”的数量。

6
评分Tarzan的奥林匹克葡萄摇摆常规
奥运会的葡萄树摆动者在标准的树上执行常规活动。特别是,“标准树” n具有0向上穿过的顶点n-1以及将每个非零顶点连接a到其n % a下面的顶点的边。因此,例如,标准树5如下所示: 3 | 2 4 \ / 1 | 0 因为5除以3时的余数为2,所以5除以2或4时的余数为1,而5除以1时的余数为0。 今年,泰山将捍卫他的金新套路,每个始于顶点n - 1,秋千到顶点n - 2,继续顶点n - 3,等等,直到最后他卸除到顶点0。 例行程序的分数是每个挥杆(包括拆卸)的分数之和,挥杆的分数是树内起点和终点之间的距离。因此,Tarzan在标准树5上的例程得分为6: 从摇摆4到3得分3分(向下,向上,向上), 从摇摆3到2得分(下降)一分, 从摆动2到1得分1分(向下),并且 从下来1,0得分为1分(下降)。 编写一个程序或函数,给定一个正整数n,该程序或函数将计算Tarzan例程在Standard Tree上的得分n。样本输入和输出: 1 -> 0 2 -> 1 3 -> 2 4 -> 6 5 -> 6 6 -> 12 7 -> 12 8 …
32 code-golf  math  number  number-theory  code-golf  code-golf  restricted-source  programming-puzzle  css  code-golf  parsing  code-golf  random  encryption  code-golf  ascii-art  fractal  code-golf  math  code-golf  sorting  graph-theory  path-finding  permutations  code-golf  tetris  code-golf  card-games  code-golf  math  sequence  rational-numbers  code-golf  chess  code-golf  string  geometry  grid  code-golf  ascii-art  grid  code-golf  sequence  integer  code-golf  math  number-theory  packing  polyomino  code-golf  math  code-golf  string  quine  permutations  code-golf  math  code-golf  image-processing  optical-char-recognition  code-golf  string  kolmogorov-complexity  sequence  integer  code-golf  number  permutations  palindrome  code-golf  kolmogorov-complexity  code-golf  number  sequence  string  fewest-operations  code-golf  string  kolmogorov-complexity  sequence  primes  code-golf  string  ascii-art  code-golf  string  number  alphabet  code-golf  counting  code-golf  number  sequence  number-theory  primes  code-golf  subsequence  word-search 

7
找到奶酪
更新:有6个迷宫。它们包含在控制器中。还有就是迷宫的一个tar.gz和他们的.bmp文件在这里(Dropbox的)。还有一个实用程序,可在该链接上产生更多的迷宫(maze_4.txt文件在存档中不正确)。此时,请随时运行您自己的条目并更新您的分数。底部包含有关操作方法的详细信息。如果您有任何疑问或麻烦,请在聊天中ping我。 你是老鼠 你在迷宫中。找到奶酪。 概念 您处于矩形网格上存在的迷宫中。网格的每个空间都包含以下几项之一: ! -不可逾越的墙 -一个可遍历的空白空间 O -你,老鼠 + -奶酪,您的目标 请使用相同的字符,这样我就不必修改控制器。 在每个回合中,您将获得当前位置的北,南,东和西瓷砖。然后,您必须输出想要行驶的方向。拿到奶酪,您就赢了。步骤越少越好。 输入项 您将通过stdin通过以下方式获得输入:nesw,其中每个字母代表该罗盘点处的图块。例如,如果当前状态看起来像 ! <--- Wall !O <--- You + <--- Cheese 然后您将得到字符串! +!。 在游戏结束时,控制器将向您发送四个零的字符串:0000。收到此字符串后,您的程序应终止。给定的其他任何输入都不会包含该0字符。 请忽略所有其他输入。 输出量 你要输出一个字母n,s,e,或w,以表明你想往哪个方向行驶,接着换行字符。 计分 您在每次测试中得到的分数是找到奶酪所需的步骤数。 您的总体得分将是一系列大小可变的迷宫中每个迷宫的平均得分的总和,所有这些迷宫都可以放入长度为50的正方形内。 例如,如果您的漫游器需要100次移动才能完成6个迷宫中的每一个,那么您的得分就是600。 如果您的漫游器不确定,请尝试每个迷宫10次,并使用平均值作为该迷宫的分数。您的最终分数将是所有平均值的总和。 规则 每个迷宫都可以容纳50x50的正方形。 从迷宫到奶酪,每个迷宫都有至少一条有效路径。 每个迷宫都将完全围起来,但奶酪将始终位于外壁上,因此它实际上是迷宫的出口。 如果碰壁,您的提交将被取消参赛资格。 如果您提交的时间过长(由我确定,我开始测试的时间),则会被取消参赛资格。这在很大程度上是为了防止无限循环。尽管我保留随时在任一方向上更改此设置的权利,但每个迷宫的软限制为一分钟。 参赛作品不一定是确定性的,但是如果您太随意,则以上几点可能会取消参赛资格。 在某些时候,迷宫将被释放,未来的答案可能无法针对它们进行优化,并且它们可能会发生变化。 提交内容: 您的提交是一个完整的程序,它通过stdin输入,通过stdout输出。这很重要,因为提交将与迷宫控制器进行交互。我不会禁止不免费提供的语言,但是我知道如果我无法使用该语言,则其他人将不得不花时间来运行测试。 请附上有关如何运行提交的说明。 请说明您的提交是否具有确定性,以便我知道是否需要多次运行。 测试迷宫 在测试迷宫中,.角色概述了到达奶酪的最短路径。它们与(空格)字符相同。它们对您的提交不可见。控制器将它们替换为空格。 …

9
取所有子集乘积的最快算法
给定n数组中的数字(不能假设它们是整数),我想计算size的所有子集的乘积n-1。 您可以通过将所有数字相乘然后依次除以一个数字(只要这些数字都不为零)来实现。但是,您可以多快完成一次不分割的操作? 如果您不允许除法,那么计算大小为n-1的所有子集的乘积所需的最小算术运算数(例如乘法和加法)是多少? 显然,您可以(n-1)*n乘以乘法。 要澄清的是,输出是n不同的乘积,除了对内存的读写操作外,唯一的操作是乘法,加法和减法。 例 如果输入有三个数字2,3,5,则输出为三个数字15 = 3*5,10 = 2*5和6 = 2*3。 获奖标准 答案应给出其代码将使用的算术运算次数的精确公式n。为了简化生活,我将插入n = 1000您的公式来判断其得分。越低越好。 如果很难为您的代码生成精确的公式,则可以对其运行n = 1000并计算代码中的算术运算。但是,最好使用一个精确的公式。 您应该将自己的分数添加n=1000到答案中以便于比较。

2
使用“子向量反转”优化排序
这是最小操作挑战,其目标是使用最少的反转将向量排序为升序。您的算法只能使用“子向量反转” 1对向量进行排序,但是它可以将其他运算用于算术运算,循环,检查其是否已排序等。算法执行的子向量反转的次数是其得分。 1个“子向量反转”: 在向量中选择一个数字范围,然后反转该范围内的元素。 举一个简单的例子,如果从vector开始{4,3,2,1},则可以用许多不同的方式对其进行排序: 反转整个向量。显然,这是最短的方法,因为它只需要一次逆转即可:{4,3,2,1} -> {1,2,3,4} 您可以执行冒泡排序的一个版本,该过程需要6个冲销: {4,3,2,1} -> {3,4,2,1} -> {3,2,4,1} -> {2,3,4,1} -> {2,3,1,4} -> {2,1,3,4} -> {1,2,3,4} 您可以从前三个元素开始,然后是最后三个元素,最后是两个第一个和最后两个,这需要进行4次交换: {4,3,2,1} -> {2,3,4,1} -> {2,1,4,3} -> {1,2,4,3} -> {1,2,3,4} ... 等等。有无数的可用选项(您可以根据需要重复执行任何操作)。 规则和要求: 对于包含100个数字的列表,您的代码必须在不到一分钟的时间内完成。您可以自己安排时间,但是请公平地玩2。 您必须存储所执行的所有交换的开始索引和结束索引,以便可以验证解决方案。(我将在下面解释这是什么意思)。 该代码必须是确定性的。 您可以根据需要使用任何格式的输入:数字矢量,链表,带长度的数组...任何您喜欢的格式。 您可以对向量的副本执行任何您喜欢的操作。这包括尝试不同的冲销并检查哪个效率最高。蛮力强行完全可以,但是要遵守时间限制。 分数是5个测试向量的翻转总数。抢七局将加盖日期戳。 例: 4 1 23 21 49 2 7 9 …

15
几何挑战
每个人都喜欢几何。那么,为什么我们不尝试编写高尔夫球代码呢?这项挑战涉及输入字母和数字并根据其形状。 输入 输入将采用的形式(shapeIdentifier)(size)(inverter)。 但是shapeIdentifier,大小和逆变器是什么? 形状标识符是您将使用*s 制作的形状类型的标识符。以下是形状标识符: s -正方形 t - 三角形 大小将介于之间1-20,它是图形的大小。 逆变器确定形状是否上下颠倒,用a +或a 表示-。请注意: s3-==(等于),s3+因为正方形是对称的。但是,t5-!=(不相等)t5+。 在输出中可以使用尾随空白,但不能使用前置空白。 输出实例 Input: s3+ Output: *** *** *** Input: t5+ Output: * *** ***** Input: t3- Output: *** * 特别说明 三角形输入将始终为奇数,因此三角形*的顶部始终以1结尾。 三角形的大小(如果是)是底部的大小,如果是 +,则是顶部的大小-。
23 code-golf  string  ascii-art  geometry  code-golf  ascii-art  subsequence  fewest-operations  test-battery  code-golf  array-manipulation  bitwise  code-golf  interactive  code-golf  music  code-golf  string  kolmogorov-complexity  code-golf  string  decision-problem  simulation  code-golf  string  classification  code-golf  sequence  base-conversion  palindrome  code-golf  kolmogorov-complexity  code-golf  date  astronomy  code-golf  sequence  base-conversion  code-golf  geometry  combinatorics  code-golf  string  code-golf  math  array-manipulation  code-challenge  math  code-golf  card-games  code-challenge  array-manipulation  sorting  code-golf  code-golf  math  abstract-algebra  polynomials  code-golf  palindrome  factoring 

3
分解一个64位整数
编写一个GOLF汇编程序,该程序从stdin读取一个整数(后跟换行符),并输出由换行符分隔的素数,然后在stdout上输出尾随换行符。 主要因素不必按特定顺序排列。1不是主要因素。 您的GOLF二进制文件(组装后)必须适合8192字节。 通过运行10次,您的程序将获得评分,每次输入以下内容之一: 8831269065180497 2843901546547359024 6111061272747645669 11554045868611683619 6764921230558061729 16870180535862877896 3778974635503891117 204667546124958269 16927447722109721827 9929766466606501253 这些数字按照难度粗略排序。第一个应该很容易通过试算法解决。 对这组数字进行优化违反了问题的实质,我可以随时更改这组数字。您的程序必须适用于任何正的64位输入数字,而不仅仅是这些。 您的分数是用于计算上述数字的CPU周期的总和。 因为GOLF是非常新的,所以我将在此处包括一些指针。你应该阅读的 GOLF所有的指令和周期成本规格。在Github仓库示例程序中可以找到。请特别看一下析因示例程序,该程序演示了输入/输出。 通过运行将程序编译为二进制文件python3 assemble.py your_source.golf。然后使用运行您的程序python3 golf.py your_source.bin,这也应该打印周期计数。-d使用--help标志查看程序出口处寄存器内容的值-用于查看所有标志。

4
从子字符串中识别字符串
介绍 之前,我曾提出过两个 挑战,即如何使用尽可能少的查询类型的操作来重建对象。这将是第三。 任务 您的输入应为S字母abc及其长度上的非空字符串,而您的输出应为S。没有限制,这当然是一件微不足道的任务。问题是您不允许S直接访问。您唯一可以做的S就是调用函数num_occur(T, S),其中T还有其他一些字符串,并num_occur计算Tin 中出现的次数S。重叠事件都算作不同,所以num_occur(T, S)真正返回的指标的数量i,使得 S[i, i+1, …, i+length(T)-1] == T 例如,num_occur("aba", "cababaababb")将返回3。注意也num_occur(S, S)将返回1。的结果num_occur("", S)是不确定的,因此您不应在空字符串上调用该函数。 简而言之,您应该编写一个函数或程序,该函数或程序以S和length(S)作为输入,num_occur对一些较短的字符串进行调用,并S进行多次调用,然后S从该信息中重构并返回它。 规则和计分 您的目标是编写一个尽可能少调用的程序num_occur。在此存储库中,您将找到一个名为的文件abc_strings.txt。该文件包含100个字符串,每个字符串在其各自的行上,长度在50到99之间。您的得分是这些输入上被调用num_occur的总次数,得分越低越好。您的解决方案最好在运行时跟踪该数字,并在完成后打印出来。通过从中选择均匀随机的字母来生成字符串abc。您可以针对这种生成字符串的方法进行优化,但不能对字符串本身进行优化。 没有时间限制,除了您应该在提交测试案例之前运行您的解决方案。您的解决方案应该适用于任何有效的输入S,而不仅仅是测试用例。 num_occur如果您不使用别人的,也鼓励您也分享自己的实现。为了使事情顺利进行,这是Python中的实现: def num_occur(needle, haystack): num = 0 for i in range(len(haystack) - len(needle) + 1): if haystack[i : i + len(needle)] == needle: num += 1 return num

1
最少的磁盘写入可对多个文件进行碎片整理
介绍 磁盘是一个线性容器,其块0通过索引size-1。 文件是该文件使用的块索引的命名列表。 示例文件系统表示如下: 15 ALPHA=3,5 BETA=11,10,7 “磁盘有15个块,文件ALPHA的第一个块是索引3处的磁盘块。” 磁盘映射可以这样绘制: Block Index 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 Contents | | | |A0 | |A1 | |B2 | | |B1 |B0 | | | | 当磁盘中的所有文件连续存储时,该磁盘将被视为已碎片整理。 你的目标: 发出最短的合法移动序列,以对给定的磁盘进行碎片整理。 法律行动 移动包含三部分信息:文件名,要移动的文件中的块的索引以及要移动到的磁盘块的索引。 例如 ALPHA:1>4 …

1
通过子序列知道序列
介绍 假设您和您的朋友正在玩游戏。您的朋友想到一些特定的n位序列,而您的任务是通过向他们提问来推断序列。但是,您只能问的唯一类型的问题是“序列的最长公共子序列有多长时间?S”,其中S任何位序列在哪里。您需要的问题越少越好。 任务 您的任务是编写一个程序或函数,该程序或函数将一个正整数n和一个二进制R长度序列作为输入n。该序列可以是整数数组,字符串或您选择的其他某种合理类型。您的程序将输出序列R。 你的程序是不是允许访问序列R直接。在只有它允许做的事情R是给它输入到功能len_lcs与其他二进制序列一起S。该函数len_lcs(R, S)返回的最长公共子序列的长度R和S。这意味着最长的位序列在R和中都作为(不一定是连续的)子序列出现S。其输入len_lcs可以具有不同的长度。程序应R多次调用此函数以及其他序列,然后R根据该信息重建序列。 例 考虑输入n = 4和R = "1010"。首先,我们可以评估len_lcs(R, "110"),这给了3,因为"110"是最长公共子"1010"和"110"。然后我们知道这R是通过"110"在某个位置插入一位获得的。接下来,我们可能会尝试len_lcs(R, "0110")返回,3因为最长的公共子序列是"110"和"010",因此返回,这"0110"是不正确的。然后我们尝试len_lcs(R, "1010"),它返回4。现在我们知道了R == "1010",因此我们可以将该序列作为正确的输出返回。这需要3次调用len_lcs。 规则和计分 在此存储库中,您将找到一个名为的文件,该文件subsequence_data.txt包含100个长度在75到124之间的随机二进制序列。它们是通过取0到1之间的三个随机浮点并将其平均值作为a,然后翻转有a偏的硬币n时间而生成的。您的得分是这些序列上的平均调用次数len_lcs,得分越低越好。您的提交应记录通话次数。没有时间限制,只是您应在提交文件之前在文件上运行程序。 您的提交应具有确定性。允许使用PRNG,但它们必须使用今天的日期200116(或最接近的等效日期)作为随机种子。您无权针对这些特定测试用例优化提交。如果我怀疑这种情况正在发生,我将生成一个新批次。 这不是代码打高尔夫球,因此鼓励您编写可读的代码。罗塞塔码(Rosetta Code)上有最长的共同子序列页 ; 您可以使用它以len_lcs您选择的语言来实现。

4
奇异硬币带来的优化挑战
您有n硬币,每个硬币的重量为-1或1。每个硬币都标有从0到的标记,n-1以便您可以区分硬币。您也有一个(魔术)称重设备。在第一轮时,您可以在称重设备上放置任意数量的硬币,该设备可以测量负重和正重,它会准确告诉您它们的重量。 但是,称重设备确实有些奇怪。如果您x_1, x_2, ..., x_j是第一次将硬币放置在设备上,则下次必须将硬币(x_1+1), (x_2+1) , ..., (x_j+1)放置在秤上,但您当然不能放置数量大于的硬币n-1。不仅如此,对于每个新称重,您还可以选择是否还要将硬币0放在秤上。 在此规则下,能始终准确告诉您哪些硬币的重量为1,哪些硬币的重量为-1的最小称量数是多少? 显然,您可以只0在第一轮中将硬币放在设备上,然后才需要精确n称重即可解决问题。 语言和图书馆 您可以使用自己喜欢的任何语言或库(不是针对此挑战而设计的)。但是,我希望能够在可能的情况下对您的代码进行测试,因此,如果您可以提供有关如何在Ubuntu中运行代码的明确说明,将不胜感激。 得分了 对于给定n的分数n,最坏情况下需要除以所需的称量数。因此,分数越高越好。这个难题没有任何输入,但您的目标是找到一个n可以获得最高分的游戏。 如果有平局,则第一个答案将获胜。在极不可能的情况下,有人找到了获得无限分的方法,该人立即获胜。 任务 您的任务只是编写得分最高的代码。您的代码必须既聪明地选择n,又要为此优化权重数n。 领先的作品 4/3 7/5在Python中由Sarge Borsch Java / 26/14的作者Peter Taylor

3
查找字符串中的模式
在这种挑战下,您的任务是找到具有给定结构的子字符串。 输入项 您的输入应为两个非空的字母数字字符串,一个模式 p和一个text t。这个想法是,的每个字符都p代表一个连续的非空子字符串,t该子字符串彼此相邻出现,并p表示它们的串联。相同的字符对应于相同的子字符串。例如,模式aa代表任何非空正方形(通过将较短的字符串与其自身连接而获得的字符串)。因此,模式aa可以匹配子字符串byebye,并且每次a匹配bye。 输出量 如果文本t包含p匹配的子字符串,则您的输出应为该子字符串,并:在与的字符相对应的字符串之间插入冒号p。例如,如果我们有t = byebyenow和p = aa,那么bye:bye它是可接受的输出。匹配子字符串可能有多个选择,但是您只能输出其中之一。 如果t不包含匹配的子字符串,则您的输出将是悲伤的表情:(。 规则和说明 的不同字符p可以对应相同的子字符串,因此p = aba可以匹配字符串AAA。请注意,这些字符必须对应于非空字符串;特别是,如果p长于t,则输出必须为:(。 您可以编写完整的程序或函数,还可以更改两个输入的顺序。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 以格式给出pattern text -> output。注意,可能存在其他可接受的输出。 a Not -> N aa Not -> :( abcd Not -> :( aaa rerere -> re:re:re xx ABAAAB -> A:A MMM ABABBAABBAABBA -> ABBA:ABBA:ABBA x33x 10100110011001 -> 10:1001:1001:10 …
17 code-golf  string  code-golf  ascii-art  geometry  code-golf  ascii-art  code-golf  sequence  stack  code-challenge  number  sequence  answer-chaining  code-golf  code-challenge  math  combinatorics  binary-matrix  code-golf  number  code-golf  cryptography  bitwise  code-golf  sudoku  code-golf  brainfuck  metagolf  code-golf  probability-theory  number-theory  primes  fewest-operations  factoring  golf-cpu  code-golf  restricted-source  code-golf  graphical-output  sequence  binary  code-golf  tips  c#  code-golf  geometry  code-golf  graphical-output  fractal  code-golf  number  sequence  code-golf  number  array-manipulation  popularity-contest  game  board-game  code-golf  puzzle-solver  grid  code-golf  ascii-art  geometry  grid  tiling  code-golf  ascii-art  whitespace  balanced-string  code-golf  card-games  king-of-the-hill  javascript  code-golf  whitespace  balanced-string  code-golf  code-golf  math  abstract-algebra  code-golf  java  code-golf  interpreter  stack  code-golf  base-conversion  code-golf  tips  code-golf  ascii-art  geometry  brainfuck  metagolf  code-challenge  math  quine  code-generation  code-golf  number  kolmogorov-complexity  arithmetic  expression-building  code-golf  string  code-golf  quine  popularity-contest  code-golf  base-conversion  code-challenge  image-processing  code-golf  conversion  coding-theory 

4
测试数字是否为平方
编写一个GOLF汇编程序,给定寄存器中的64位无符号整数,如果是正方形,则将n非零值放入寄存器中,否则将放入寄存器中。sn0s 您的GOLF二进制文件(组装后)必须适合4096个字节。 您的程序将使用以下Python3程序(必须放在GOLF目录中)进行评分: import random, sys, assemble, golf, decimal def is_square(n): nd = decimal.Decimal(n) with decimal.localcontext() as ctx: ctx.prec = n.bit_length() + 1 i = int(nd.sqrt()) return i*i == n with open(sys.argv[1]) as in_file: binary, debug = assemble.assemble(in_file) score = 0 random.seed(0) for i in range(1000): cpu = golf.GolfCPU(binary) if …

3
重构排列
介绍 假设您获得了n对象的随机排列。排列被密封在一个盒子中,因此您不知道n!它是哪种。如果设法将置换应用于n不同的对象,则可以立即推断出其身份。但是,只允许将置换应用于长度n二进制矢量,这意味着您必须多次应用置换才能识别它。显然,仅将其应用于n向量1就可以完成工作,但是如果您很聪明,则可以使用log(n)应用程序来完成。但是,该方法的代码将更长。 这是一项实验性挑战,您的分数是代码长度和查询复杂度的组合,这意味着对辅助过程的调用次数。规格有点长,请耐心等待。 任务 您的任务是编写一个命名函数(或最接近的对等函数) f,该函数使用基于0或基于1的索引作为输入n,并使用正整数和p前n整数的排列作为输入。其输出是排列p。但是,不允许您p直接访问排列。您唯一可以做的就是将其应用于任何n位向量。为此,您应该使用一个辅助函数P,该函数接受一个置换p和一个bits向量v,并返回其p[i]th坐标包含bit 的置换向量v[i]。例如: P([1,2,3,4,0], [1,1,0,0,0]) == [0,1,1,0,0] 您可以将“位”替换为任意两个不同的值,例如3和-4,或'a'和'b',并且它们不需要固定,因此可以P在[-4,3,3,-4]和[2,2,2,1]的同一调用中使用两者进行调用f。的定义P不会计入您的分数。 计分 解决方案在给定输入上的查询复杂度是它对辅助函数进行的调用次数P。为了使此度量明确,您的解决方案必须是确定性的。您可以使用伪随机生成的数字,但随后还必须为生成器确定初始种子。 在此存储库中,您将找到一个名为的文件permutations.txt,该文件包含505个排列,使用从0开始的索引(在从1开始的情况下,增加每个数字),每个长度在5到50之间(含150和150)之间。每个排列都在其自己的行上,并且其编号由空格分隔。您的分数是这些输入的字节数f+平均查询复杂度。最低分获胜。 额外规则 最好使用带说明的代码,并且不允许出现标准漏洞。特别是,各个位是无法区分的(因此,您不能给Integer对象提供矢量P并比较它们的身份),并且该函数P始终返回一个新矢量,而不是重新安排其输入。您可以自由更改和的名称f以及P它们接受参数的顺序。 如果您是第一个使用您的编程语言回答的人,我们强烈建议您包括一个测试工具,其中包括该函数的实现,该实现P还计算调用它的次数。例如,这是Python 3的工具。 def f(n,p): pass # Your submission goes here num_calls = 0 def P(permutation, bit_vector): global num_calls num_calls += 1 permuted_vector = [0]*len(bit_vector) for i in range(len(bit_vector)): permuted_vector[permutation[i]] = bit_vector[i] return permuted_vector …

2
图像捉迷藏
在这一挑战中,您需要在照片中找到特定像素(用真实相机拍摄)。 您将传递一个(R,G,B)元组和一个图像,并且需要在图像中返回一个与给定RGB颜色匹配的点(x,y)。图像可能具有与颜色匹配的多个点。您只需要找到1。 的挑战是,你需要做的是在阅读的几个像素越好。您的分数将是在所有测试用例中读取的像素总数。 如果愿意,只要不对像素进行任何处理,就可以将整个图像读取为RGB值数组。我完全出于效率目的而允许这样做。例如,在Python中list(Image.open("image_name+".jpg").convert("RGB").getdata())就可以了。 不允许硬编码位置。您的算法不仅适用于下面列出的测试用例,还应能很好地工作。不允许在测试用例之间保存数据。我选择<10了在图像中不经常出现的RGB值()(以免影响您的算法)。如果您在算法中使用随机性,请设置一个种子,以使分数保持恒定。 图片可以在Github上找到 测试用例: image_name: (r, g, b) [all possible answers] barn: (143,91,33) [(887,1096),(2226,1397),(2007,1402),(2161,1508),(1187,1702)] (53,35,59) [(1999,1260)] (20,24,27) [(1328,1087),(154,1271)] (167,148,176) [(1748,1204)] (137,50,7) [(596,1498)] (116,95,94) [(1340,1123)] (72,49,59) [(1344,857),(1345,858),(1380,926),(1405,974),(1480,1117)] (211,163,175) [(1963,745)] (30,20,0) [(1609,1462),(1133,1477),(1908,1632)] (88,36,23) [(543,1494),(431,1575)] daisy: (21,57,91) [(1440,1935),(2832,2090),(2232,2130),(1877,2131),(1890,2132)] (201,175,140) [(1537,1749),(2319,1757)] (169,160,0) [(2124,759)] (113,123,114) [(1012,994),(2134,1060),(1803,1183),(1119,1335)] (225,226,231) [(3207,829),(3256,889),(3257,889),(1434,981),(2599,1118),(2656,1348),(2656,1351)] (17,62,117) [(2514,3874),(2336,3885)] (226,225,204) [(3209,812)] …

2
GOLF CPU高尔夫挑战赛:主要分区
这个挑战是应该在GOLF CPU中编写的一系列最少操作问题中的第一个。您可以在这里找到下一个 数字的分区N是加在一起的数字列表N。一个主要的分区是加起来素数的列表N。 对于这个挑战,您将获得一个整数N ≥ 2。您需要为生成最短的主分区N。如果有多个可能的分区,则可以打印其中任何一个。 例子: 9: [2, 7] 12: [5, 7] 95: [89, 3, 3] 337: [337] 1023749: [1023733, 13, 3] 20831531: [20831323, 197, 11] 您的程序应使用GOLF CPU编写。对于输入/输出,您可以使用STDIO或寄存器。该列表可以按任何顺序排列,如果您使用的是STDOUT,则可以用空格或逗号分隔(无需括号)。显然,不允许对解决方案进行硬编码,也不得对头几个质数进行硬编码。 这是最少的操作问题,因此以最少的周期数解决上面的示例的答案就成功了!
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.