锁定老帖子 主题:调查:您认为最恶心的笔试题
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-02-18
soulshard 写道 第二题我前几天想了半天头痛最后写了个程序去解……
强人,能否将程序贴出来学习下? |
|
返回顶楼 | |
发表时间:2011-02-18
大型外企的题都挺神的
不过这个语文的那个确实是,估计是让你怎么使用google吧 |
|
返回顶楼 | |
发表时间:2011-02-18
lkj107 写道 大型外企的题都挺神的
不过这个语文的那个确实是,估计是让你怎么使用google吧 什么大型外企呀,毛~ |
|
返回顶楼 | |
发表时间:2011-02-18
闲着无聊,写了一段。算出来答案是 c, d, e, b, e, e, d, c, b, a
<html> <head> <script type="text/javascript"> var B = ["a", "b", "c", "d", "e"]; var T = [ [1, 2, 3, 4, 5], [[1, 2], [2, 3], [3, 4], [4, 5], [5, 6]], [0, 1, 3, 6, 5], [0, 1, 2, 3, 4], [9, 8, 7, 6, 5], [1, 2, 3, 4, NaN], [4, 3, 2, 1, 0], [2, 3, 4, 5, 6], [[3, 5, 7], [1, 2, 6], [4, 9], [8], [5, 10]], [0, 1, 2, 3, 4] ]; function validate(x){ var valid = true; var i = 0; var j = 0; // 1.第一个答案是b的问题是哪一个? //(a)2;(b) 3;(c)4;(d)5;(e)6 valid = x[T[0][x[0]]] == 1; if(!valid) return false; for(i = 0; i < T[0][x[0]]; i++){ if(x[i] == 1){ valid = false; break; } } if(!valid) return false; // 2、唯一的连续两个具有相同答案的问题是: //(a)2,3;(b)3,4;(c)4,5;(d)5,6;(e)6,7; valid = x[T[1][x[1]][0]] == x[T[1][x[1]][1]]; if(!valid) return false; var count = 0; for(i = 0; i < 9; i++){ if(x[i] == x[i + 1]) count++; } valid = count == 1; if(!valid) return false; // 3、本问题答案和哪一个问题的答案相同? //(a)1;(b)2;(c)4;(d)7;(e)6 valid = x[2] == x[T[2][x[2]]]; if(!valid) return false; // 4、答案是a的问题的个数是: //(a)0;(b)1;(c)2;(d)3;(e)4 count = 0; for(i = 0; i < 10; i++){ if(x[i] == 0) count++; } valid = T[3][x[3]] == count; if(!valid) return false; // 5、本问题答案和哪一个问题的答案相同? //(a)10;(b)9;(c)8;(d)7;(e)6 valid = x[4] == x[T[4][x[4]]]; if(!valid) return false; // 6、答案是a的问题的个数和答案是什么的问题的个数相同? //(a)b;(b)c;(c)d;(d)e;(e)以上都不是 count = 0; if(x[5] != 4){ for(i = 0; i < 10; i++){ if(x[i] == T[5][x[5]]) count++; } valid = T[3][x[3]] == count; }else{ valid = true; for(i = 0; i < 4; i++){ count = 0; for(j = 0; j < 10; j++){ if(x[j] == T[5][i]) count++; } if(T[3][x[3]] == count){ valid = false; break; } } } if(!valid) return false; // 7、按照字母顺序,本问题的答案和下一个问题的答案相差几个字母? //(a)4;(b)3;(c)2;(d)1;(e)0。(注:a和b相差一个字母) valid = Math.abs(x[6] - x[7]) == T[6][x[6]]; if(!valid) return false; // 8、答案是元音字母的问题的个数是: //(a)2;(b)3;(c)4;(d)5;(e)6。(注:a和e是元音字母) count = 0; for(i = 0; i < 10; i++){ if(x[i] == 0 || x[i] == 4) count++; } valid = T[7][x[7]] == count; if(!valid) return false; // 9、答案是辅音字母的问题的个数是: //(a)一个质数;(b)一个阶乘数;(c)一个平方数;(d)一个立方数,(e)5的倍数 var tmp = T[8][x[8]]; valid = false; for(i = 0; i < tmp.length; i++){ if(10 - T[7][x[7]] == tmp[i]) valid = true; } if(!valid) return false; // 10、本问题的答案是: //(a)a;(b)b;(c)c;(d)d;(e)e。 return true; } function RunTest(){ for(var x1 = 0; x1 < 5; x1++){ for(var x2 = 0; x2 < 5; x2++){ for(var x3 = 0; x3 < 5; x3++){ for(var x4 = 0; x4 < 5; x4++){ for(var x5 = 0; x5 < 5; x5++){ for(var x6 = 0; x6 < 5; x6++){ for(var x7 = 0; x7 < 5; x7++){ for(var x8 = 0; x8 < 5; x8++){ for(var x9 = 0; x9 < 5; x9++){ for(var x10 = 0; x10 < 5; x10++){ if(validate([x1, x2, x3, x4, x5, x6, x7, x8, x9, x10])){ document.getElementById("result").innerHTML = B[x1] + ", " + B[x2] + ", " + B[x3] + ", " + B[x4] + ", " + B[x5] + ", " + B[x6] + ", " + B[x7] + ", " + B[x8] + ", " + B[x9] + ", " + B[x10]; return; } }}}}}}}}}} document.getElementById("result").innerHTML = "false"; } </script> </head> <body> <button onclick="RunTest()">Run Test</button> <div id="result"></div> </body> </html> |
|
返回顶楼 | |
发表时间:2011-02-18
没有其它的解。
我很好奇,这个题目是怎么出出来的。。 |
|
返回顶楼 | |
发表时间:2011-02-18
EldonReturn 真牛!
|
|
返回顶楼 | |
发表时间:2011-02-18
后面的有些考历史的题目
汗颜、、、、、、、、O(∩_∩)O哈哈~ |
|
返回顶楼 | |
发表时间:2011-02-19
EldonReturn 写道 没有其它的解。
我很好奇,这个题目是怎么出出来的。。 题目很好出的,先随便编一组答案,然后根据答案写问题 |
|
返回顶楼 | |
发表时间:2011-02-21
EldonReturn 写道 闲着无聊,写了一段。算出来答案是 c, d, e, b, e, e, d, c, b, a
<html> <head> <script type="text/javascript"> var B = ["a", "b", "c", "d", "e"]; var T = [ [1, 2, 3, 4, 5], [[1, 2], [2, 3], [3, 4], [4, 5], [5, 6]], [0, 1, 3, 6, 5], [0, 1, 2, 3, 4], [9, 8, 7, 6, 5], [1, 2, 3, 4, NaN], [4, 3, 2, 1, 0], [2, 3, 4, 5, 6], [[3, 5, 7], [1, 2, 6], [4, 9], [8], [5, 10]], [0, 1, 2, 3, 4] ]; function validate(x){ var valid = true; var i = 0; var j = 0; // 1.第一个答案是b的问题是哪一个? //(a)2;(b) 3;(c)4;(d)5;(e)6 valid = x[T[0][x[0]]] == 1; if(!valid) return false; for(i = 0; i < T[0][x[0]]; i++){ if(x[i] == 1){ valid = false; break; } } if(!valid) return false; // 2、唯一的连续两个具有相同答案的问题是: //(a)2,3;(b)3,4;(c)4,5;(d)5,6;(e)6,7; valid = x[T[1][x[1]][0]] == x[T[1][x[1]][1]]; if(!valid) return false; var count = 0; for(i = 0; i < 9; i++){ if(x[i] == x[i + 1]) count++; } valid = count == 1; if(!valid) return false; // 3、本问题答案和哪一个问题的答案相同? //(a)1;(b)2;(c)4;(d)7;(e)6 valid = x[2] == x[T[2][x[2]]]; if(!valid) return false; // 4、答案是a的问题的个数是: //(a)0;(b)1;(c)2;(d)3;(e)4 count = 0; for(i = 0; i < 10; i++){ if(x[i] == 0) count++; } valid = T[3][x[3]] == count; if(!valid) return false; // 5、本问题答案和哪一个问题的答案相同? //(a)10;(b)9;(c)8;(d)7;(e)6 valid = x[4] == x[T[4][x[4]]]; if(!valid) return false; // 6、答案是a的问题的个数和答案是什么的问题的个数相同? //(a)b;(b)c;(c)d;(d)e;(e)以上都不是 count = 0; if(x[5] != 4){ for(i = 0; i < 10; i++){ if(x[i] == T[5][x[5]]) count++; } valid = T[3][x[3]] == count; }else{ valid = true; for(i = 0; i < 4; i++){ count = 0; for(j = 0; j < 10; j++){ if(x[j] == T[5][i]) count++; } if(T[3][x[3]] == count){ valid = false; break; } } } if(!valid) return false; // 7、按照字母顺序,本问题的答案和下一个问题的答案相差几个字母? //(a)4;(b)3;(c)2;(d)1;(e)0。(注:a和b相差一个字母) valid = Math.abs(x[6] - x[7]) == T[6][x[6]]; if(!valid) return false; // 8、答案是元音字母的问题的个数是: //(a)2;(b)3;(c)4;(d)5;(e)6。(注:a和e是元音字母) count = 0; for(i = 0; i < 10; i++){ if(x[i] == 0 || x[i] == 4) count++; } valid = T[7][x[7]] == count; if(!valid) return false; // 9、答案是辅音字母的问题的个数是: //(a)一个质数;(b)一个阶乘数;(c)一个平方数;(d)一个立方数,(e)5的倍数 var tmp = T[8][x[8]]; valid = false; for(i = 0; i < tmp.length; i++){ if(10 - T[7][x[7]] == tmp[i]) valid = true; } if(!valid) return false; // 10、本问题的答案是: //(a)a;(b)b;(c)c;(d)d;(e)e。 return true; } function RunTest(){ for(var x1 = 0; x1 < 5; x1++){ for(var x2 = 0; x2 < 5; x2++){ for(var x3 = 0; x3 < 5; x3++){ for(var x4 = 0; x4 < 5; x4++){ for(var x5 = 0; x5 < 5; x5++){ for(var x6 = 0; x6 < 5; x6++){ for(var x7 = 0; x7 < 5; x7++){ for(var x8 = 0; x8 < 5; x8++){ for(var x9 = 0; x9 < 5; x9++){ for(var x10 = 0; x10 < 5; x10++){ if(validate([x1, x2, x3, x4, x5, x6, x7, x8, x9, x10])){ document.getElementById("result").innerHTML = B[x1] + ", " + B[x2] + ", " + B[x3] + ", " + B[x4] + ", " + B[x5] + ", " + B[x6] + ", " + B[x7] + ", " + B[x8] + ", " + B[x9] + ", " + B[x10]; return; } }}}}}}}}}} document.getElementById("result").innerHTML = "false"; } </script> </head> <body> <button onclick="RunTest()">Run Test</button> <div id="result"></div> </body> </html> 没看代码…… 我想知道这个求对了么? |
|
返回顶楼 | |
发表时间:2011-02-21
穷举法肯定对的,不过我觉得效率可以优化下,比如8、9题的选择无非就是a、d;b、a;c、d;d、[a/e];e、c可以优先判断,这样的优先逻辑可以先人为判断一下,再机械穷举
|
|
返回顶楼 | |