问题标签 [code-golf]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
code-golf - Code Golf:Pi 的莱布尼茨公式
我最近在“您有什么更具争议的编程观点”中发布了我最喜欢的面试白板编码问题之一,即编写一个使用莱布尼茨公式计算 Pi 的函数。
它可以通过多种不同的方式来处理,退出条件需要一些思考,所以我认为它可能会成为一个有趣的代码高尔夫问题。最短的代码获胜!
假设 Pi 可以使用函数 4 * (1 - 1/3 + 1/5 - 1/7 + ...) 来估计,更多的项可以提供更高的准确性,请编写一个计算 Pi 到 0.00001 以内的函数。
编辑:2008 年 1 月 3 日
正如评论中所建议的那样,我将退出条件更改为 0.00001 以内,因为这就是我真正的意思(由于四舍五入,精确到小数点后 5 位要困难得多,所以我不想在面试中问这个问题,而在 0.00001 以内是更容易理解和实现退出条件)。
另外,为了回答评论,我想我的意图是解决方案应该计算迭代次数,或者检查它何时完成了足够的工作,但是没有什么可以阻止您预先计算迭代次数并使用该数字。我真的很感兴趣地问了这个问题,看看人们会想出什么。
cryptography - 代码高尔夫:Diffie-Hellman 密钥交换
回到 ITAR 时代,有一个流行的 sig 执行 Diffie-Hellman 密钥交换:
使用现代直流,这可以大大减少为:
虽然具有模幂命令的现代 dc 形式('|' 通过有效的指数加倍计算 g^e % m )可能除了APL之外是无与伦比的,但可以改进原始形式吗?请记住,e 和 m 值将非常大;为了加密安全,它们都将是 1024 位的数量级。
linux - Bash 文本解析高尔夫
我正在编写一个 shell 脚本来确定最后一次在 subversion 存储库中创建分支的时间。以下代码有效:
但我不喜欢最后两行。我怎样才能将它们结合在一起?
我只是想删除斜杠
language-agnostic - 在数字集合中找到最接近的匹配项
所以我今天被问到在一个集合中找到接近匹配的最佳方法是什么。
例如,你有一个这样的数组:
最接近4的数是多少?
集合是数字的,无序的,可以是任何东西。与要匹配的数字相同。
让我们看看我们可以从选择的各种语言中得出什么。
algorithm - 代码高尔夫:将多个排序列表组合成一个排序列表
实现一种算法,将任意数量的排序列表合并为一个排序列表。目的是用你喜欢的任何语言创建最小的工作程序。
例如:
注意:连接输入列表然后使用语言提供的排序功能的解决方案不符合高尔夫精神,并且不会被接受:
除此之外,您的算法应该(但不一定)要快得多!
清楚地说明语言、任何弱点和字符数。仅在计数中包含有意义的字符,但出于艺术/可读性目的,请随意在代码中添加空格。
为了保持整洁,建议改进评论或在适当的地方编辑答案,而不是为每个“修订”创建新答案。
编辑:如果我再次提交这个问题,我会将“没有提供语言的排序”规则扩展为“不要连接所有列表然后对结果进行排序”。现有的进行 concatenate-then-sort 的条目实际上非常有趣和紧凑,所以我不会追溯引入它们破坏的规则,但可以随意在新提交的内容中使用更具限制性的规范。
python - Python Golf:将此列表转换为字典的最简洁方法是什么:
我有一个看起来像这样的列表:
我想把它变成一个字典,其中每个键是一个名称,每个值是一个与其子列表在列表中的位置相对应的数字:
我尝试了各种列表推导,但我无法让它与嵌套列表一起正常工作。我可以使用嵌套循环,如下所示:
但我怀疑有一种更短、更优雅的方法。
language-agnostic - 解析和格式化搜索结果
搜索:
脚本+语言 Web+页面应用程序
结果:
...脚本语言最初...产生动态网页。它具有...图形应用程序...目的脚本语言是...d 创建网页作为输出...
假设我想要一个值来表示允许在匹配项的任一侧填充的字符数量,另一个值表示结果中将显示多少匹配项(即,我只想查看前 5 个匹配项,而已)。
你会怎么做呢?
这与语言无关,但我将在 PHP 环境中实现该解决方案,因此请将答案限制在不需要特定语言或框架的选项上。
这是我的思考过程:从搜索词创建一个数组。确定哪个搜索词具有关于它在文章正文中的位置的最低索引。将正文的那部分收集到另一个变量中,然后从文章正文中删除该部分。返回到第 1 步。您甚至可以为每个单词添加一个计数器,当计数器达到 3 左右时跳过它。
重要的:
解决方案必须以非线性方式匹配所有搜索项。意思是,如果术语一存在于术语二之后,则它应该在术语二之后找到。同样,它也应该在第 3 学期之后找到。如果恰好在它们之前存在,则应在术语 1 和 2 之前找到术语 3。
该解决方案应允许我声明“每个术语最多允许三个匹配项,然后终止摘要。”
额外学分:
获取填充变量以可选地填充单词,而不是字符。
string - 查找列表中最长项目长度的最有效方法是什么?
给定一个不同长度的单词列表,找到任何单词的最大长度的最佳方法是什么?
例如,以下应返回 6
当然,这样做是相当微不足道的......
或者,短一点...
但是有没有更好的方法——更有效的方法?
也许一些Java方法?转换为数组并按项目长度排序?计算逗号之间的最大间隔?
实际上,以上两个示例中的任何一个都可以很好地满足我当前的需求,并且这不适用于对性能至关重要的东西,因此我不需要对此的答案,但是我认为仍然会很有趣看看人们会想出什么...
code-golf - CodeGolf:计算给定数字的质因数
受http://codegolf.com/prime-factors的启发,尝试使用最少的击键次数来解决这个问题。
可悲的是,您只能与 Perl/PHP/Python/Ruby 竞争,我希望看到这个问题在其他不那么传统的语言中得到解决。
code-golf - 高尔夫 - 在文本文件中展开模板
Golf - 实现一个简单的模板方案。
扩展是:
- %KEY% -> 价值
- %% -> %
命令行参数:
- ARG1:字典文件,格式
key=value
如示例 - ARG2:模板文件
这是我不太喜欢打高尔夫球的尝试(python):261 个字符。
信息和通信技术
模板
结果
是的,我意识到这是一个有缺陷的模板系统,“捕捉”了一个更短更好的实现。