Questions tagged «function»

对于要求功能或以某种方式涉及功能的挑战。(也称为方法或子例程。)

30
调用方法而不调用它
受现已删除的StackOverflow问题的启发。您能否提出一种方法来执行特定的方法,而无需显式调用它?间接程度越高,效果越好。 准确地说,这就是我的意思(C仅用作示例,接受所有语言): // Call this. void the_function(void) { printf("Hi there!\n"); } int main(int argc, char** argv) { the_function(); // NO! Bad! This is a direct call. return 0; } 原始问题:

30
任意长度弯曲
编写一个函数,该函数f接受一个正整数并返回一个函数。 返回的新函数应与相同f。但是,当“终止调用”发生时,f应该返回所有传递的整数之和。 例如,g=f(4)(如果f是第一个功能)应设置g为另一个功能。h=g(3)会做同样的。但是,当您h不带任何参数调用时(请参见下文以了解详细信息),它应该输出7,因为这是以前的函数参数的总和。换句话说f(3)(4)() == 7。 请注意,这与f(3,4)()。 “终止呼叫”是以下选项之一(您的选择): 不带参数调用 null作为参数 任何非正值 应该支持任意数量的函数调用,没有预定义的限制。 保证总和不会超过1000。 我们可以假设在“终止呼叫”之前至少进行了一次呼叫。 您的代码不应使用静态的,针对每个程序的变量,因此应该可以在同一运行时中多次运行实验,并观察到完全相同的行为。 例子: f(1)() == 1 f(4)(2)(7)() == 13 f(4)(2)(7)(5)(2)() == 20

22
什么奇怪的功能
您的任务是实现一个函数1,该函数在正整数上形成置换(从正整数到自身的双射)。这意味着每个正整数在排列中应该恰好出现一次。最重要的是,您的函数输出奇数而不是偶数的可能性更大。 现在,这似乎很奇怪或不可能。当然,奇数和偶数一样多吗?虽然这种直觉对于有限集是正确的,但实际上对于无限集并不成立。例如,采用以下排列: 1 3 2 5 7 4 9 11 6 13 15 8 17 19 10 21 23 12 25 27 14 29 31 16 33 35 18 37 39 20 41 43 22 45 47 24 49 51 26 53 55 ... 如果对序列中的任何一个子部分的大小大于,则奇数至少与偶数一样多,因此,似乎任何随机项为奇数的概率都大于偶数。您还会注意到,每个数字最终都会在序列中出现奇数或偶数,并且只能出现一次。因此,该序列是真正的排列。1个11 概率的定义 为了避免混淆或模棱两可,我将清楚地阐明该问题中概率的含义。 让我们说我们有一个函数。当趋于无穷大时,一个数字为奇数的概率将定义为该集合的奇数成员与集合的大小之比的极限。FffF{ 1 …

30
定义一个函数f,使所有非零整数n的f(f(n))= -n
我经常访问一个编程博客,激发了这一挑战。请在此处查看原始帖子:编程难题 挑战 定义一个函数f:Q->Q,以便f(f(n)) = -n对所有非零整数n,其中,Q是有理数的集合。 细节 请使用您喜欢的任何语言定义一个函数或程序f,该函数或程序接受一个数字作为参数n并返回或输出一个数字f(n)。 可以通过最适合您的语言的机制来提供输入:函数自变量,从STDIN读取,命令行自变量,堆栈位置,语音输入,帮派标志等。 输出应该是功能/程序的返回值或打印到STDOUT。 我想将答案限制为不利用程序状态或从函数外部可见的全局内存/数据的函数f。例如,将计数器保留在该计数之外将对调用f次数f进行计数,并且仅基于此计数进行否定对任何人来说都不是挑战或有趣的事情。做出的决定f应仅依赖f词法范围内的数据。 但是,此限制可能不适用于某些面向堆栈的语言或其他无法区分这些类型的数据或范围的语言。请运用您最好的判断力来迎接挑战的精神。 计分 通用代码高尔夫规则适用-您的得分是源代码中的字节数。 最小答案要求的域和共域是f有理数的子集Q。如果将的域和共域限制f为整数Z,则分数是源代码中字节数的90%的上限。 抢七 如果出现平局,将按以下顺序使用: 源代码中可打印的非空白符号数量最少 最早提交答案的日期和时间 编辑 您不需要支持任意大小的数字。请使用您选择的语言(通常分别为整数和浮点)解释集合Z和Q数据类型。 如果您的解决方案完全依赖于数据类型的基础结构或位模式,请描述其局限性以及如何使用它。

4
f(g(x))减小而g(f(x))增大
为此,您需要在整数上实现两个函数f和g,使得f∘g是严格减少的函数,而g∘f是严格增加的函数。换句话说,如果取任意两个整数a <b,则f(g(a))> f(g(b))和g(f(a))<g(f(b))。f和g分别没有限制,只不过它们必须分别将一个整数映射到另一个整数。 请提供对f和g的简短描述,以及有关为什么它们具有必需属性的参数。 信用:这项挑战的灵感来自2011年罗马尼亚数学硕士竞赛中的一个问题(该问题提出了相同的问题,但用实数而不是整数)。如果您真的想要破坏者,那么现在您知道要搜索什么。 规则 应该从将一个整数映射到另一个整数的数学意义上来理解此挑战中的“函数”一词:您可以编写两个程序或两个函数,并像往常一样使用接收和提供输出的任何标准方法。您可以使用整数的字符串表示形式来代替实际的整数变量,但是输入和输出的类型应该相同,以便可以在不手动转换类型的情况下组成函数。请记住,从概念上讲,f和g仍需要是ℤ上的函数,因此您不能通过使用相同数字或类似形式的两个不同的字符串表示形式作弊。 请记住,函数可以是未命名的,只要它们本身或您定义的另一个函数不需要它们的名称即可。如果您确实命名了这两个功能中的一个或两个,则可以假定它们存在于同一程序中,因此它们在实现中可以相互引用(例如,def f(x): return -g(x)在Python中)。 通常的整数溢出规则适用:您的解决方案必须能够在语言的假设(或实际)版本中使用任意大整数,默认情况下,所有整数都是无界的,但是如果您的程序由于实现而在实践中失败不支持大整数,这不会使解决方案无效。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此您的得分是两个函数的字节数之和与最短有效答案的总和。

30
这个数字是-2的整数次幂吗?
有很多聪明的方法来确定数字是否为2的幂。这不再是一个有趣的问题,因此让我们确定给定的整数是否为-2的整数次幂。例如: -2 => yes: (-2)¹ -1 => no 0 => no 1 => yes: (-2)⁰ 2 => no 3 => no 4 => yes: (-2)² 规则 您可以编写程序或函数,并使用接收输入和提供输出的任何标准方法。 您的输入是一个整数,如果该整数是-2的整数次幂,则输出必须是一个真实值,否则,则必须是一个虚假值。不允许其他输出(例如警告消息)。 通常的整数溢出规则适用:您的解决方案必须能够在语言的假设(或实际)版本中使用任意大整数,默认情况下,所有整数都是无界的,但是如果您的程序由于实现而在实践中失败不支持大整数,这不会使解决方案无效。 您可以使用任何编程语言,但是请注意,默认情况下,这些漏洞是禁止的。 获奖条件 这是一场代码高尔夫球比赛:字节数最少(在您选择的编码中)的答案是获胜者。

22
自然派#0-摇滚
目标 创建一个接受输入的程序/函数N,检查N随机整数对是否相对质数,然后返回sqrt(6 * N / #coprime)。 TL; DR 这些挑战是仅需要自然和大脑(也许还有一些可重复使用的资源)才能逼近Pi的算法模拟。如果您在僵尸启示录期间确实需要Pi,那么这些方法不会浪费弹药!还有另外八个挑战。检出沙盒帖子以提出建议。 模拟 我们在模拟什么?好吧,两个随机整数是相对质数(即coprime或gcd == 1)的概率是6/Pi/Pi,因此计算Pi的自然方法是挖出两个桶(或少数几个)的岩石。数他们;看看他们的gcd是否为1;重复。这样做后,一对夫妇很多次,sqrt(6.0 * total / num_coprimes)会趋向Pi。如果计算世界末日后的平方根使您感到紧张,请不要担心!有牛顿法。 我们如何模拟这一点? 接受输入 N 请执行以下N次数: 均匀生成随机正整数,i并且j 用 1 <= i , j <= 10^6 如果gcd(i , j) == 1:result = 1 其他: result = 0 取N结果的总和,S 返回 sqrt(6 * N / S) 规格 输入值 …
39 code-golf  math  random  pi  approximation  popularity-contest  code-golf  sequence  number-theory  binary  coding-theory  code-golf  math  3d  code-golf  code-golf  math  number  code-golf  kolmogorov-complexity  code-golf  ascii-art  graphical-output  binary-tree  code-golf  ascii-art  code-golf  ascii-art  kolmogorov-complexity  code-golf  array-manipulation  hexadecimal  code-golf  math  number  set-theory  code-golf  math  arithmetic  number-theory  integer  code-golf  string  kolmogorov-complexity  code-golf  math  sequence  arithmetic  decision-problem  code-golf  code-golf  ascii-art  code-golf  array-manipulation  parsing  code-golf  string  ascii-art  kolmogorov-complexity  code-challenge  code-golf  sequence  code-golf  number  array-manipulation  sorting  code-golf  string  function  code-golf  arithmetic  code-golf  math  sequence  number-theory  primes  restricted-source  javascript  code-challenge  polyglot  rosetta-stone  code-golf  code-golf  regular-expression  code-golf  math  code-golf  math  primes  code-golf  ascii-art  kolmogorov-complexity  binary  code-golf  math  sequence  code-golf  sequence  subsequence  code-golf  string  code-golf  parsing  music  code-golf  grid  game  path-finding  board-game  code-golf  string  binary  code-golf  array-manipulation  balanced-string  code-golf  code-golf  algorithm  code-golf  string  number  arithmetic  array-manipulation  code-golf  array-manipulation  binary-tree  tree-traversal  code-golf  code-golf  tips  code-golf  string  base-conversion  code-golf  tips  s.i.l.o.s  code-golf  string  ascii-art  code-golf  code-challenge  code-golf  game 

30
确定所有十进制数字是否唯一
关于Stack Overflow的已删除问题有时可以使高尔夫球变得更好。 编写一个以非负整数作为输入的函数,如果该数字以10为基的所有数字都是唯一的,则返回true。例: 48778584 -> false 17308459 -> true 字符数仅包含功能。 如果选择用C或C ++回答:没有宏,没有未定义的行为;实现定义的行为和编译器警告都可以。

30
阿克曼函数
Ackermann函数是非原始递归的全部可计算函数中最简单的例子之一。 我们将使用以下A(m,n)两个非负整数的定义: A(0,n) = n+1 A(m,0) = A(m-1,1) A(m,n) = A(m-1,A(m,n-1)) 您可以实施 一个以两个整数作为输入,返回一个整数的命名或匿名函数,或者 一个程序,在STDIN上使用两个以空格或换行符分隔的整数,并将结果打印到STDOUT。 如果存在库,则不能使用库中的Ackermann函数或超幂函数,但是可以使用任何其他库中的任何其他函数。允许定期取幂。 您的函数必须能够A(m,n)在不到一分钟的时间内找到m≤3和n≤10 的值。从理论上讲,它必须至少终止于任何其他输入:给定无限堆栈空间,本机Bigint类型以及任意长时间,它将返回答案。编辑:如果您的语言的默认递归深度过于严格,则可以重新配置它而无需花费任何字符。 字符数最少的提交将获胜。 以下是一些值,以检查您的答案: A | n=0 1 2 3 4 5 6 7 8 9 10 -----+----------------------------------------------------------------- m=0 | 1 2 3 4 5 6 7 8 9 10 11 1 | 2 3 …

30
P Pr Pref Pref Prefi Prefixe Prefixes
给定一些有限列表,以其长度的升序返回所有前缀的列表,包括一个空列表。 (基本实现Haskell函数inits。) 细节 输入列表包含数字(如果方便的话,还可以输入其他类型)。 输出必须是一个列表列表。 提交可以但不必一定是函数,可以使用任何默认的I / O。 有一个CW答案为所有平凡的解决方案。 例 [] -> [[]] [42] -> [[],[42]] [1,2,3,4] -> [[], [1], [1,2], [1,2,3], [1,2,3,4]] [4,3,2,1] -> [[], [4], [4,3], [4,3,2], [4,3,2,1]]

30
传递了多少论点?
使用您选择的语言,编写一个函数,该函数接受可变数量的参数并返回调用该参数的参数数量。 细节: 您的语言需要支持可变参数函数:可调用的函数,可以接受任意数量的参数并返回值。 参数必须能够单独传递。这意味着传递数组将仅计入一个参数。如果您的语言支持,则可以使用“所有传递的参数”数组;该函数的调用方式受到限制。 调用此函数的代码不必在其源中传递参数数量。如果编译器将参数数量作为调用约定的一部分插入,则允许这样做。 参数可以是您想要的任何类型。您只能支持单一类型(例如,仅支持int仍然有效),任意类型(允许任何类型的参数)或参数类型的任意组合(例如,第一个arg为int,其余为字符串)。 您的函数可能具有最大数量的参数(尤其是由于资源有限),但是必须至少支持2个参数。 样品: f() 退货 0 f(1)或f("a")返回1 f([1, 2, 3])1在传递数组时返回,而不是3个参数 f(1, 10)或f(1, "a")返回2 因为这是代码高尔夫球,所以胜出的解决方案是使用最少字节数的解决方案。

15
黑匣子三角法
写一个程序或功能,可以区分以下12个三角函数: sin, cos, tan, asin, acos, atan, sinh, cosh, tanh, asinh, acosh, atanh。 您的程序将上面的功能之一称为黑匣子,并且应按照上面给出的名称或以您的语言命名的方式输出该函数的名称。 这是代码高尔夫球,因此每种语言中最短的答案将获胜。您应该通过包含所有12种可能的输入的测试用例来证明您的代码可以正常工作。如果您选择的语言不包含上述所有功能的内建函数,则您必须为缺失的函数提供自己的明智实现。 进一步说明 如果基础内建程序可以处理复数,则允许使用复数查询黑盒。 由于仅使用实数时,对黑盒函数的查询可能会给出域错误。在这种情况下,您应该假设黑匣子仅传达错误的存在,而不传达错误的来源。dÔ 米一个ç ö 小号ħ ∩ d Ô 中号一吨一个Ñ ħ = ∅ dØ米 一种CØsH∩dØ米 一种Ť一种ñH=∅ dom\ acosh \cap dom\ atanh = \emptyset 如果返回的不是其他错误(例如NaN或null),则您的提交应该能够处理它们。 感谢您提供有用的沙盒反馈!

6
救命!我的计算器出现故障!
介绍 我的计算器很奇怪。有时,当我输入时8会显示2。有时,当我输入a 6时会显示+。一些按钮混在一起! 谁能帮我确定哪个? 挑战: 输入:错误方程式列表,结果正确。 输出:交换的两个按钮。 例如: 输入可以是: 123 = 3 8423 = 252 4+4 = 8 4*7-10 = 417 9/3 = 3 42-9 = -36 其预期的输出是:2和*。 为什么?因为如果我们交换2和*,则所有等式都是正确的: 1*3 = 3 84*3 = 252 4+4 = 8 427-10 = 417 9/3 = 3 4*-9 = -36 挑战规则: 输入可以采用任何合理的格式。可以是一个以空格分隔的字符串;字符串列表或-array; 一个包含方程式的列表和另一个包含正确结果的列表。你的来电。请说明您使用的输入格式! …
28 code-golf  number  arithmetic  integer  code-golf  math  number  geometry  code-golf  grid  code-golf  math  number  sequence  primes  code-golf  sequence  kolmogorov-complexity  code-golf  string  ascii-art  alphabet  code-golf  math  sequence  integer  code-golf  number-theory  integer  natural-language  code-golf  date  code-golf  function  code-golf  ascii-art  code-golf  math  number-theory  primes  classification  code-golf  array-manipulation  decision-problem  matrix  code-golf  number  code-golf  code-golf  ascii-art  matrix  code-golf  string  code-golf  sequence  base-conversion  code-golf  code-golf  math  number-theory  combinatorics  integer-partitions  code-golf  integer  binary  base-conversion  code-golf  integer  base-conversion  palindrome  code-golf  code-golf  integer-partitions  code-golf  math  ascii-art  matrix  code-golf  number  sequence  number-theory  matrix  code-golf  interpreter  code-golf  graph-theory  code-golf  ascii-art  decision-problem  code-golf  division  code-golf  array-manipulation  primes  code-golf  string  ascii-art  code-golf  primes  counting  code-golf  matrix  unicode  code-golf  source-layout  code-golf  grammars  code-golf  string  cops-and-robbers  regular-expression  obfuscation  string  code-challenge  cops-and-robbers  regular-expression  code-golf  kolmogorov-complexity  game  card-games  code-golf  kolmogorov-complexity  code-golf  array-manipulation  matrix  code-challenge  cops-and-robbers  code-challenge  decision-problem  cops-and-robbers  code-golf  permutations 

12
蠕虫的生命
条款 一个蠕虫是负整数的任何名单,以及其最右边(即最后一个)元素称为头。如果头部不为0,则蠕虫的活动段由最长的连续元素块组成,该元素块包括头部,并且其所有元素至少与头部一样大。在简约有效段是主动段与由1。例如递减的头,所述蜗杆3 1 2 3 2具有活性片段2 3 2,以及减少的活性段2 3 1。 进化规则 蠕虫逐步演化如下: 在步骤t(= 1,2,3,...)中, 如果头为0:删除头, 否则:用缩减的活动段的t + 1级联副本替换活动段。 事实:任何蠕虫最终都会演变成空列表,而这样做的步骤就是蠕虫的生存期。 (有关详细信息,请参阅LD Beklemishev撰写的《蠕虫原理》。“列表”是指有限序列,“头”是指最后一个元素的用法,摘自本文—请勿混淆)并将列表作为抽象数据类型常用,其中head通常表示第一个元素。) 示例(括号中的活动部分) 蠕虫:0,1 step worm 0(1) 1 0 0 0 2 0 0 3 0 4 <- lifetime = 4 蠕虫:1,0 step worm 1 0 1 (1) 2 0 0 …

13
编写一个告诉您哪些行已删除的函数
编写一个包含五行的函数。 如果按原样运行该函数,则应返回0。 如果您删除了五行中的任何一行并运行该函数,它应该告诉您哪些行已被删除(例如,如果您删除最后一行,则应返回5)。 简洁,新颖和优雅都值得考虑。最高投票赞成的解决方案(经过合理的时间)获胜。

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.