论坛首页 招聘求职论坛

调查:您认为最恶心的笔试题

浏览 17880 次
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-02-18  
soulshard 写道
第二题我前几天想了半天头痛最后写了个程序去解……

强人,能否将程序贴出来学习下?
0 请登录后投票
   发表时间:2011-02-18  
大型外企的题都挺神的

不过这个语文的那个确实是,估计是让你怎么使用google吧
0 请登录后投票
   发表时间:2011-02-18  
lkj107 写道
大型外企的题都挺神的

不过这个语文的那个确实是,估计是让你怎么使用google吧


什么大型外企呀,毛~
0 请登录后投票
   发表时间: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>
0 请登录后投票
   发表时间:2011-02-18  
没有其它的解。
我很好奇,这个题目是怎么出出来的。。
0 请登录后投票
   发表时间:2011-02-18  
EldonReturn 真牛!
0 请登录后投票
   发表时间:2011-02-18  
后面的有些考历史的题目

汗颜、、、、、、、、O(∩_∩)O哈哈~
0 请登录后投票
   发表时间:2011-02-19  
EldonReturn 写道
没有其它的解。
我很好奇,这个题目是怎么出出来的。。

题目很好出的,先随便编一组答案,然后根据答案写问题
0 请登录后投票
   发表时间: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>


没看代码……
我想知道这个求对了么?
0 请登录后投票
   发表时间:2011-02-21  
穷举法肯定对的,不过我觉得效率可以优化下,比如8、9题的选择无非就是a、d;b、a;c、d;d、[a/e];e、c可以优先判断,这样的优先逻辑可以先人为判断一下,再机械穷举
0 请登录后投票
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics