受http://xkcd.com/710/的启发,这里是一个代码高尔夫球。 挑战 给定一个大于0的正整数,打印出该数字的雹石序列。 冰雹序列 请参阅维基百科了解更多详情。 如果数字是偶数,则将其除以二。 如果数字是奇数,则将其三倍并加一。 用产生的数字重复此操作直到它达到1(如果它继续在1之后,将进入1 -> 4 -> 2 -> 1…的无限循环) 有时代码是解释的最好方法,所以这里是一些来自Wikipedia function collatz(n) show n if n > 1 if n is odd call collatz(3n + 1) else call collatz(n / 2) 此代码有效,但是我增加了额外的挑战。 该程序不能容易发生堆栈溢出 。 所以它必须使用迭代或尾recursion。 此外,如果它可以计算大数字和语言的奖励点还没有实施。 (或者如果你用固定长度的整数重新实现大数字支持) testing用例 Number: 21 Results: 21 -> 64 -> 32 -> 16 -> 8 […]
我正在寻找一个图书馆或数据库,可以根据他或她的名字或昵称提供一个人是男性还是女性的猜测。 就像是 john => "M", mary => "F", alex => "A", #ambiguous 我正在寻找一些支持英文名称以外的名称(如日文,印度文等)。 在我得到另外一个答案之前,“你要冒犯他人的性别/性别”让我明白,我的申请不会与任何人交stream。 它不会发送电子邮件或联系任何人。 有没有用户问。 在很多情况下,这个人是死的,我唯一的信息是姓名,出生date和死亡date。 我想知道个人的性别的原因是为了使输出更好的语法,并帮助可能来自后者的search。
难题 我在高中时听到的一个难题就是这样的 提问者会要求我给他一个数字; 听到这个号码后,提问者会反复进行某种转换(例如,他可能会说10是3 ),直到最终到达数字4(在这一点上,他将以4结束是魔术 )。 无论如何,任何数字似乎最终都可以变成四个。 目标是试图找出转换function,然后能够可靠地自我监督这个难题。 解决scheme 任何一步的转换function都是 以问题的数字, 计算英文单词表示中的字母数量,忽略连字符或空格或“和”(例如,“十”中有三个字母,“三十四”中有十个字母,“一百四十三”有20个字母在里面)。 返回那个字母的数字。 对于所有我曾经考虑过的数字,这个收敛到4.因为“四”中也有四个字母,所以在这里会有一个无限循环。 相反,它仅仅被称为魔术 ,以结束序列。 挑战 您的挑战是创build一段代码,从用户那里读取一个数字,然后打印显示重复应用转换函数的行,直到达到“四是魔术”。 特别: 解决scheme必须是完整的程序本身。 它们不能仅仅是在input中涉及数量因素的function。 input必须从标准input读取。 (pipe道从“回声”或使用inputredirect是好的,因为这也是从标准input) input应该是数字forms。 对于转换函数的每个应用程序,都应该打印一行: a is b. ,其中a和b是转换中数字的数字forms。 全站(期间)是必需的! 最后一行应该自然地说, 4 is magic. 。 代码应该为0到99之间的所有数字生成正确的输出。 例子: > 4 4 is magic. > 12 12 is 6. 6 is 3. 3 is 5. 5 is […]
挑战 按字符计数的最短代码输出从给定长度的input音符开始的钢琴键盘的一部分。 input将由开始打印键盘的音符( [ACDFG]#|[AG] )和代表要打印的键的长度(包括第一个音符)的正数组成。 第一个键应该全部打印 – 如果它有一个左锐键,它将被切割,同样的,当开始键是锐利的时候,左键也将被切割。 夏普钥匙不计算在内,只有白色钥匙。 testing用例 Input C 14 Output | ### ### | ### ### ### | ### ### | ### ### ### | | ### ### | ### ### ### | ### ### | ### ### ### | | ### ### | ### ### ### | ### ### | […]
在我看来,GOF中描述的Observerdevise模式与在各种工具包中发现的Listener是一样的。 这些概念之间是否有区别,或者是听众和观察者真的是一回事。 (我不是在寻找任何特定的计算机语言实现,我只是想从devise的angular度来理解差异(如果有的话)。是的,我知道SOF有类似的问题有几个答案,但是它们是根植的在关于特定语言的具体问题 – 我正在寻找devise答案,而不是语言答案。)
我试图find语义差异/合并实用程序的一些很好的例子。 比较源代码文件的传统范例是通过比较行和字符来工作的。但是在比较文件时是否有实际考虑代码结构的任何实用程序(对于任何语言)? 例如,现有的diff程序将报告“在第125行的字符2处发现的差异。文件x包含void,其中文件y包含bool”。 一个专门的工具应该能够报告“方法doSomething()的返回types从void更改为bool”。 我认为这种types的语义信息实际上是用户在比较代码时所要查找的内容,应该是下一代编程工具的目标。 有没有这样的可用工具的例子?
例如,拿这段代码: var person = new Person(); 或为你Pythonistas: person = Person() 我常常被告知这是多么糟糕,但还没有看到这两行代码不道德的例子。 对我来说,人是一个人,试图给它另一个名字是浪费时间。 我认为在语法突出的日子里,这将是一个大问题。 但是现在,除了variables名以外,很容易告诉types名称。 哎呀,在SO上看到这个区别很容易。 还是有什么我失踪? 如果是这样,如果你能提供一个导致问题的代码的例子,这将是有帮助的。
我正在开发一个RESTful API,其中http://server/thingyapi/thingyblob/1234返回与thingy#1234关联的文件(又名“blob”)以供下载。 但可能是请求是在服务器中不存在文件的时候发出的,但是最后肯定会提供。 在服务器中有一个批处理过程,为所有事物生成所有的斑点。 Thingy 1234已经存在,它的数据,除了blob,已经可用了。 服务器还没有产生thingy 1234的blob呢。 我不想返回404; 那是不存在的东西。 这是存在的东西,但它的blob还没有产生。 有点像YouTube的video,“处理”。 我不认为redirect代码是适当的; 有没有“其他”的url来尝试。 什么是正确的HTTP状态码在这种情况下返回?
实施拼写检查器时,通常使用哪种algorithm,并附带单词build议? 起初,我认为检查每个新input的单词(如果没有在字典中find的话)与字典中每个单词的Levenshtein距离相比 ,并返回最上面的结果是有意义的。 然而,这似乎是非常低效的,不得不反复评估整个字典。 这通常如何完成?
谈论编程语言时,“正交性”是什么意思? 什么是正交性的一些例子?