我尝试打码打高尔夫球.
找到最小值?W_i*|X-X_i|的问题减少到找到x[i]具有权重的列表的加权中值w[i](参见下面的定义).你将如何用最短,最简单和最美丽的程序来做到这一点?
以下是我的代码最初的显示方式(解释在问题的答案中,简短版本作为以下答案之一发布).
#define zero(x) ( abs(x) < 1e-10 ) /* because == doesn't work for floats */
float sum = 0;
int i;
for (i = 0; i < n; i++)
sum += w[i];
while (sum > 0)
sum -= 2*w[--i];
right = x[i] // the rightmost minimum point
left = ( zero(sum) && zero(w[i]-w[i-1]) ) ? x[i-1] : right;
answer = (left + right) / 2;
Run Code Online (Sandbox Code Playgroud)
(实际上,当你看到变量i并sum …
我有一个方法,我想异步调用:
void Foo()
{
}
Run Code Online (Sandbox Code Playgroud)
我确实可以通过以下方式异步调用它:
delegate void DVoidMethod();
DVoidMethod FooDelegate = new DVoidMethod(Foo);
FooDelegate.BeginInvoke(null,null);
Run Code Online (Sandbox Code Playgroud)
有没有人有其他选择?
我认为三行代码太多了?
请按照下面给出的示例输入和输出,使用最短的源代码回答一个程序,该程序将任意明文转换为相应的密文.奖励积分*表示最短的CPU时间或最少的内存使用量.
明文:快速的棕色狐狸跳过懒狗.Supercalifragilisticexpialidocious!
Ciphertext: eTh kiquc nobrw xfo smjup rvoe eth yalz .odg!uioiapeislgriarpSueclfaiitcxildcos
明文: 123 1234 12345 123456 1234567 12345678 123456789
密文: 312 4213 53124 642135 7531246 86421357 975312468
您可以将其视为向后读取所有其他字符(从单词的结尾开始),然后是剩余的字符向前.Corporation => XoXpXrXtXoX => niaorCoprto.
感谢那些指出我的描述不一致的人.这导致你们许多人走上了错误的道路,我为此道歉.规则#4应该清理.
*只有Jeff Atwood决定这样做才能获得奖励积分.由于我没有跟他核实过,机会很小.抱歉.
我有一个列表,看起来像这样:
[['Tom', 'Dick'], ['Harry', 'John', 'Mike'], ['Bob']]
Run Code Online (Sandbox Code Playgroud)
我想将它变成一个字典,其中每个键都是一个名称,每个值都是一个与列表中子列表位置相对应的数字:
{'Tom': 0, 'Dick': 0, 'Harry': 1, 'John': 1, 'Mike': 1, 'Bob': 2}
Run Code Online (Sandbox Code Playgroud)
我尝试了各种列表推导,但我无法让它与嵌套列表一起工作.我可以使用嵌套循环,如下所示:
names = [['Tom', 'Dick'], ['Harry', 'John', 'Mike'], ['Bob']]
names_dict = {}
for i, name_sublist in enumerate(names):
for name in name_sublist:
names_dict[name] = i
Run Code Online (Sandbox Code Playgroud)
但我怀疑有一种更短,更优雅的方式.
给出各种长度单词的列表,找到任何单词的最大长度的最佳方法是什么?
例如,以下应返回6
findMaxLen("a,set,of,random,words")
Run Code Online (Sandbox Code Playgroud)
当然,这样做是相当微不足道的......
<cffunction name="findMaxLen" returntype="Numeric">
<cfset var CurMax = 0 />
<cfset var CurItem = 0 />
<cfloop index="CurItem" list="#Arguments[1]#">
<cfif Len(CurItem) GT CurMax >
<cfset CurMax = Len(CurItem)/>
</cfif>
</cfloop>
<cfreturn CurMax />
</cffunction>
Run Code Online (Sandbox Code Playgroud)
或者,更短一点......
<cffunction name="findMaxLen" returntype="Numeric">
<cfset var CurMax = 0 />
<cfset var CurItem = 0 />
<cfloop index="CurItem" list="#Arguments[1]#">
<cfset CurMax = Max( CurMax , Len(CurItem) ) />
</cfloop>
<cfreturn CurMax />
</cffunction>
Run Code Online (Sandbox Code Playgroud)
但是有更好的方法 - 更高效的东西吗?
也许是一些Java方法?转换为数组并按项目长度排序?计算逗号之间的最大差距?
在实际应用中,无论是上述两个例子将罚款我目前的需求,这是不适合的东西是性能的关键,所以我并不需要一个答案,但我认为这仍然将是有趣的看看人们会想出什么......
我学校的计算机科学专业报(称为readme,它是挪威语,第19页)有一个有趣的竞争,为下面的问题编写尽可能短的Java代码.
接受一个整数(作为字符串数组的第一个条目中的字符串,因为Java main方法只接受字符串数组)作为参数,并首先写出所有低于此数字的数字作为素数,然后写出所有数字不是素数.最短的代码获胜!
作为答案,我将发布赢得竞争的最短Java代码.我想知道Stack Overflow社区是否可以制作更短的代码如果您了解挪威语,您会看到如果您已经完成它就可以赢得一瓶香槟,但不幸的是,比赛的最后提交日期已经结束.
你怎么解决这个问题?
我正在制作一个书签,并且认为我会抛出一个挑战:如何从尽可能少的字符中的链接注入外部javascript文件.
这是我能想到的最短的:
javascript:(function(d){d.body.appendChild(d.createElement('script')).src='URL'})(document)
Run Code Online (Sandbox Code Playgroud)
这是没有URL的88个字符.
Stack Overflow javascript大师可以做得更好吗?我将接受最少字符的工作答案,所以戴上你的思维帽!
(有一点:书签必须适用于所有主流浏览器.这是一个聪明的解决方案,但不适用于所有主流浏览器,因为它返回一个值.)
所以我之前已经完成了这个,对于这样一个看似简单的任务来说,这是一个令人惊讶的丑陋代码.
目标是将任何不可打印的角色翻译成一个.(点).出于我的目的,"可打印"确实排除了最后几个字符string.printable(换行符,制表符等).这是用于打印旧的MS-DOS调试"十六进制转储"格式......或任何类似的东西(其中额外的空格将破坏预期的转储布局).
我知道我可以使用,string.translate()并且要使用它,我需要一个翻译表.所以我用string.maketrans()它.这是我能想到的最好的:
filter = string.maketrans(
string.translate(string.maketrans('',''),
string.maketrans('',''),string.printable[:-5]),
'.'*len(string.translate(string.maketrans('',''),
string.maketrans('',''),string.printable[:-5])))
Run Code Online (Sandbox Code Playgroud)
......这是一个难以理解的混乱(虽然它确实有效).
从那里你可以打电话使用像:
for each_line in sometext:
print string.translate(each_line, filter)
Run Code Online (Sandbox Code Playgroud)
... 而且要快乐.(只要你不看引擎盖).
现在,如果我将这个可怕的表达式分解为单独的语句,它就更具可读性:
ascii = string.maketrans('','') # The whole ASCII character set
nonprintable = string.translate(ascii, ascii, string.printable[:-5]) # Optional delchars argument
filter = string.maketrans(nonprintable, '.' * len(nonprintable))
Run Code Online (Sandbox Code Playgroud)
为了便于阅读,这样做很诱人.
但是,我一直认为必须有一种更优雅的方式来表达这一点!
在打高尔夫球时,人们试图用尽可能少的角色完成拼图,通常只使用基本语言.在R中打高尔夫球的一个技巧是使用部分完成,以便例如rle(...)$length可以缩短到rle(...)$l.如何在R中打开函数名称,最好是尽可能少的字符?
code-golf ×10
python ×2
asynchronous ×1
bookmarklet ×1
c# ×1
coldfusion ×1
cpu-word ×1
delegates ×1
encryption ×1
erlang ×1
java ×1
javascript ×1
list ×1
minimize ×1
numbers ×1
primes ×1
puzzle ×1
r ×1
scramble ×1
string ×1
words ×1