让函数 f 运行 10s 以上,最终输出 true,代码越短越好。(不能有交互。CPU 性能以目前主流配置为参考~)
1
CivAx 2018-11-21 14:38:31 +08:00
这家伙发的帖子都是这种风格的……
|
2
1039460820 2018-11-21 14:55:24 +08:00
function f() {
// 在此写入你的代码: // ... setTimeout(()=>{alert("10 秒过了")},10000) } |
3
no1xsyzy 2018-11-21 15:13:49 +08:00
这个还是上 codegolf.stackexchange 吧
|
4
no1xsyzy 2018-11-21 15:16:53 +08:00
@1039460820 并不能,在 setTimeout 将函数和数值交给 WebAPI 了以后 f() 就退出了。而上述测试代码是看 f() 运行前后的时间差。
|
5
wwwe 2018-11-21 15:17:19 +08:00 via Android
t=Date.now()+10001;
while(Date.now()<t); |
6
yulitian888 2018-11-21 15:19:18 +08:00
如果允许加载一段外部 js 的话~~~~~
随便挂一段挖矿病毒进去吧! |
7
mytry OP @yulitian888 加载一段外部 js 的代码量足够写一段循环代码了~
|
9
Mutoo 2018-11-21 15:28:36 +08:00
无法匹配正则是最消耗时间的:
function f1() { return /(x+x+)+y/.exec("xxxxxxxxxxxxxxxxxxxx") || true; // 10s } function f2() { return /(x+x+)+y/.exec("xxxxxxxxxxxxxxxxxxxxx") || true; // 20s } |
10
momocraft 2018-11-21 15:29:47 +08:00
for(;Math.random()>1e-9;);
|
11
Mutoo 2018-11-21 15:30:40 +08:00
@Mutoo 单位错了,是 10ms 和 20ms
增加到 30 个 x 可以超过 10s function f3() { return /(x+x+)+y/.exec("xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx") || true; // > 10s } |
12
no1xsyzy 2018-11-21 15:36:35 +08:00
30 bytes
m=a=>(!a||m(a-1)+m(a-1));m(99) 应该上服务器也能 10s 以上,我的电脑 99 换 31 就 true 了 |
13
lzuntalented 2018-11-21 15:42:30 +08:00
好一手空手套代码 [逃]
|
14
nekoneko 2018-11-21 15:44:28 +08:00
console.log(true)
|
15
mytry OP 之前尝试最短的是 10 个字符~ (提示:可以用 ES6 )
|
16
vicvinc 2018-11-21 18:03:05 +08:00
蛋疼。。
|
17
Luckyray 2018-11-21 18:06:34 +08:00
嘿嘿有点好玩
|
18
fulvaz 2018-11-21 18:11:26 +08:00
用 console.time()和 console.timeEnd()记录时间呀
|
19
TomatoYuyuko 2018-11-21 18:21:32 +08:00
function f() {
alert("泽挖耳朵!") } (function() { var now = Date.now; var t1 = now(); f(); var t2 = now(); console.log(t2 - t1 > 10000); })(); 阻断就行了,你不点想要多久都 ok |
20
AsaMyth 2018-11-21 18:24:47 +08:00 via Android
@TomatoYuyuko “ The world ”?🤔🤔🤔
|
21
azhi 2018-11-21 19:14:15 +08:00
await 内部 setTimeout
|
22
lamtim 2018-11-21 19:35:18 +08:00 via iPhone
function f(){
let start=window.performance.now(),end=window.performance.now() while(end-start<10001){ end=window.performance.now() } } 不知道可不可以 |
23
valentin508 2018-11-22 00:32:33 +08:00 via Android
求求楼上楼下的审题吧,是让 CPU 跑十秒不是让浏览器窗口卡十秒行吗
|
24
meepo3927 2018-11-22 09:46:51 +08:00
连续出了几个"挑战题",
兄弟你是不是要搞事情… |
25
nanmu42 2018-11-22 09:49:31 +08:00 via Android
while true ... (逃)
|
26
mytry OP 公布 10 个字符的答案:
如果 CPU 太快可以把 7n 改成 8n 就可以。 如果是 9n**9n**9n 未来几年的 CPU 都不可能在 10s 里算出答案,9^9^9 ≈ 4.28 x 10^369693099 这个数字的位数就有 3 亿多~ |
27
night98 2018-11-22 11:24:29 +08:00
while(true){}
|