精华内容
下载资源
问答
  • JAVA——判断多选题

    千次阅读 2016-10-15 11:22:43
    这几天再给学校里做一个考试系统,有选择题、判断题和多选题,前两个题型判断比较容易,但是在多选题上就卡壳了。要求是正确答案在三个及以上,考生输入的两个及以上正确答案挣1分。全挣1.5分。由于是web端的考试...

    这几天再给学校里做一个考试系统,有选择题、判断题和多选题,前两个题型判断比较容易,但是在多选题上就卡壳了。要求是正确答案在三个及以上,考生输入的两个及以上正确答案挣1分。全对挣1.5分。


    由于是web端的考试系统所以获取到的考生答案和正确答案均为字符串数组

    代码如下:

    package demo;
    
    import java.util.Arrays;
    
    public class MultSelectTest {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            int count_all = 0;
            int count_part = 0;
            String[] sure_answer = { "1", "2", "3", "4" };
            String[] user_answer = { "1", "2", "3", "4" };
            if (user_answer.length <= sure_answer.length) {
            //jdk自带方法:判断两个数组是否完成相等(一一对应)
                if (Arrays.equals(sure_answer, user_answer)) {
                    count_all++;
                } else if (MultSelectTest.containArray(sure_answer, user_answer)) {
                    count_part++;
                }
            }
            System.out.println("多选题全对的有:" + count_all + ",多选题部分对的有:" + count_part);
        }
    
        // 判断sure_answer数组是否全部包含user_answer数组并且相同的元素不少于两个
        public static boolean containArray(String[] sure_answer,
                String[] user_answer) {
            //true表示多选题部分对,false表示不对
            boolean bool = true;
            // 用户输入的每一个答案都遍历正确答案数组,如果count等于正确答案数组的个数,则这个答案是错的。
            int count = 0;
            // 对题的个数:防止出现考生输入一个答案的情况
            int ques_count = 0;
    
            for (int i = 0; i < user_answer.length; i++) {
                for (int j = 0; j < sure_answer.length; j++) {
                    if (!user_answer[i].equals(sure_answer[j])) {
                        count++;
                    }
                }
                //看count声明时的注释
                if (count == sure_answer.length) {
                    bool = false;
                    break;
                } else {
                    //表示这个打算对了
                    ques_count++;
                }
                // 出现一个错误选项直接返回false
                if (!bool) {
                    return bool;
                }
    
            }
            //相对元素的个数在两个以上才算对
            if (ques_count <= 1) {
                bool = false;
            }
            return bool;
        }
    }
    

    在注释里已经写的非常清楚了…..如果有问题的话,欢迎私信或评论….

    展开全文
  • 1073. 多选题常见计分法(20)——python

    千次阅读 2018-03-08 16:11:38
    刚开始写的那个逻辑有点混乱,只通过了三个测试点,所以今天索性又重新写了一个,这次更加的注重逻辑的实现,主要的就是使用了两个字典,一个是dir_count_wrong,用来保存每个错误选项的次数,还有一个就是dir_...

    刚开始写的那个逻辑有点混乱,只通过了三个测试点,所以今天索性又重新写了一个,这次更加的注重逻辑的实现,主要的就是使用了两个字典,一个是dir_count_wrong,用来保存每个题错误选项的次数,还有一个就是dir_list_wrong,是用来保存每个题的错误选项。

    (1)首先是对正确选项以及同学的答案进行处理,放到字典中;

    (2)对每一个同学的选择题进行分析,分为三种情况,全对,部分对以及答案错误,并且算出该同学的得分;

    (3)在将同学的答题情况分为三种后,就可以分别进行统计, 全对时不用考虑,然后就是考虑部分对以及答案错误的情况;

    (4)对每个同学的每个选项进行分析,若是错误的(这个错误包括漏选以及多选),则将该题的选项保存到该题的dir_list_wrong字典中,这个字典中的值就是错误选项的list,主要的作用就是判断该题的该选项是否是第一次出错;然后再根据是否是第一次出错,对保存选项次数的dir_count_wrong进行操作;

    (5)之后就是统计出错的最多的选项,然后输出相应的格式。

    def get_input(M, dir_right_answers, list_grades):
    	#得到所有标准答案并存放在字典中, 并返回分数list	
    	for i in range(M):
    		string_right = input()
    		dir_right_answers[i] = string_right
    		list_grades.append(int(string_right[0]))
    		
    def deal_my_answer(string_my_answer):
    	#对学生的答案进行处理,得到标准的list
    	string_my_answer = string_my_answer[1:-1]
    	string_my_answer = string_my_answer.split(') (')
    	return string_my_answer
    	
    def judge_wrong_or_partRight(my_answer, right_answer):
    	#一个同学的某个答案在没有全对的情况下判断是属于全错还是部分对的情况
    	wrong_flag = False
    	for num in my_answer:
    		if num not in right_answer:
    			wrong_flag = True
    	return wrong_flag
    
    def get_part_right_per_count(right_answer, my_answer, list_wrong, count_per):
    	#得到部分正确选项的遗漏选项次数
    	for num in right_answer:
    		if num not in my_answer:
    			if num not in list_wrong:
    				list_wrong.append(num) #从来没有的加入到错误选项list
    				count_per[num] = 1
    			else:
    				count_per[num] += 1
    				
    def get_wrong_count(right_answer, my_answer, list_wrong, count_per):
    	#得到错误答案选项中的次数
    	right_answer_copy = right_answer
    	#my_answer_copy = my_answer
    	for num in my_answer:
    		if num in right_answer:
    			right_answer_copy.remove(num)
    		elif num not in list_wrong:
    			list_wrong.append(num)
    			count_per[num] = 1
    		else:
    			count_per[num] += 1
    	if right_answer_copy:
    		for num in right_answer_copy:
    			if num not in list_wrong:
    				list_wrong.append(num) #从来没有的加入到错误选项list
    				count_per[num] = 1
    			else:
    				count_per[num] += 1			
    			
    def judge_my_answer(M, string_my_answer, dir_right_answers, list_grades, dir_count_wrong, dir_list_wrong,
    		flag_wrong):
    	#判断一个同学的答案是否正确, 并且得到其本道题的分数
    	my_grades = 0
    	for i in range(M):
    		wrong_flag = False
    		right_answer = dir_right_answers[i].split()
    		right_answer = right_answer[3:] #得到只含选项的正确答案
    		my_answer = string_my_answer[i].split()
    		my_answer = my_answer[1:] #得到只含选项的同学所做答案
    		if my_answer == right_answer:
    			my_grades += list_grades[i] #全对的情况
    			#print("OK")
    		else: #其他的情况
    			flag_wrong = True
    			wrong_flag = judge_wrong_or_partRight(my_answer, right_answer)
    			if wrong_flag:
    				#pass
    				get_wrong_count(right_answer, my_answer, dir_list_wrong[i], dir_count_wrong[i])
    				#print("NO")
    			else:
    				my_grades += list_grades[i] * 0.5				
    				get_part_right_per_count(right_answer, my_answer, dir_list_wrong[i], dir_count_wrong[i])
    	print("%.1f" % my_grades)
    	return flag_wrong
    
    def get_initilazition_list(M, dir_list_wrong, dir_count_wrong):
    	#初始化存放错误选项的list以及存放错误次数的字典
    	for i in range(M):
    		dir_list_wrong[i] = []
    		dir_count_wrong[i] = {}
    
    def get_max_count(M, dir_count_wrong, dir_list_wrong):
    	#寻找错误次数最多的选项
    	dir_max = {}
    	max_all = 0
    	list_count_all = []
    	for i in range(M):
    		list_count = []
    		my_dir = dir_count_wrong[i]
    		for num in dir_list_wrong[i]:
    			list_count.append(my_dir[num])
    		dir_max[i] = max(list_count)
    		list_count_all.append(dir_max[i])
    	max_all = max(list_count_all)
    	
    	#列出所有的错误次数最多的选项
    	for i in range(M):
    		if dir_max[i] == max_all:
    			my_wrong_list = dir_list_wrong[i]
    			my_wrong_list = sorted(my_wrong_list)
    			for num in my_wrong_list:
    				if dir_count_wrong[i][num] == max_all:
    					print("%d %d-%s" % (max_all, i + 1, num))
    		
    if __name__ == '__main__':
    	string_N_AND_M = input().split()
    	N, M = int(string_N_AND_M[0]), int(string_N_AND_M[1])
    	dir_right_answers = {} #存放正确答案的字典
    	flag_wrong = False #标识是否有错误答案
    	dir_count_wrong = {} #存放每个题所有错误答案次数的字典
    	
    	dir_list_wrong = {} #存放每一题错误选项list的字典
    	get_initilazition_list(M, dir_list_wrong, dir_count_wrong)
    	
    	list_grades = [] #存放每个题分数的list
    	get_input(M, dir_right_answers, list_grades)
    	#print(list_grades)
    	for i in range(N): #对每一个同学的情况进行分析
    		string_my_answer = input()
    		string_my_answer = deal_my_answer(string_my_answer)
    		flag_wrong = judge_my_answer(M, string_my_answer, dir_right_answers, list_grades,
    			dir_count_wrong, dir_list_wrong, flag_wrong)
    	#print(dir_count_wrong)
    	#print(dir_list_wrong)
    	if flag_wrong:
    		get_max_count(M, dir_count_wrong, dir_list_wrong)
    	else:
    		print("Too simple")
    	

    展开全文
  • 7.操作系统的两个主要设计目标是:使计算机系统的使用_______和工作_______。 8.操作系统是计算机系统中必不可少的软件,它归属于_______软件。 9.能计算机系统进行初始化且把操作系统核心程序装入主存储器的...
  • 起初,这两个人经常会发生争执,因为他们总是有人认为对方的汤比自己的。后来他们找到了一个两全其美的办法:一个人分汤,让另一个人先。于是争端就这么解决了。可是,现在这间囚房里又加进来一个新犯人,现在是...

    逻辑推理题是软件企业招聘的必考题型。旨在考查应聘者掌握和运用逻辑分析方法的能力。通过理解、分析、综合、判断、归纳等过程,引出概念、寻求规律,对事物间关系或事件的走向趋势做出合理判断与分析,确定解决问题的途径和方法。

    1

    一间囚房里关押着两个犯人。每天监狱都会为这间囚房提供一罐汤,让这两个犯人自己来分。起初,这两个人经常会发生争执,因为他们总是有人认为对方的汤比自己的多。后来他们找到了一个两全其美的办法:一个人分汤,让另一个人先选。于是争端就这么解决了。可是,现在这间囚房里又加进来一个新犯人,现在是三个人来分汤。必须寻找一个新的方法来维持他们之间的和平。该怎么办呢?按:心理问题,不是逻辑问题

    2

    有两个父亲分别给他们的儿子一些钱。其中一个父亲给了儿子150元,另一个父亲给了儿子100元钱。但两个儿子却说他们一共只得了150元。那100元哪里去了呢?

    3

    某城市发生了一起汽车撞人逃跑事件,该城市只有两种颜色的车,蓝15%绿85%,事发时有一个人在现场看见了,他指证是蓝车,但是根据专家在现场分析,当时那种条件能看正确的可能性是80%那么,肇事的车是蓝车的概率到底是多少?

    4

    100个人回答五道试题,有81人答对第一题,91人答对第二题,85人答对第三题,79人答对第四题,74人答对第五题,答对三道题或三道题以上的人算及格, 那么,在这100人中,至少有( )人及格。

    5

    有A、B、C和D四个少女。她们正在接受训练以便成为预言家。实际上,后来她们之中只有一个人成了预言家,并在特尔斐城谋得一个职位。其余三个人,一个当了职业舞蹈家、一个当了宫廷女侍、第三个当了演奏家。

    一天,她们四个人在练习讲预言。

    • A预言:“B无论如何也成不了职业舞蹈家”。

    • B预言:“C将成为特尔斐城的预言家”。

    • C预言:“D不会成为演奏家”。

    • D预言:“她自己将嫁给一个叫阿特的男人”。

    可是,事实上她们四个人中,只有一个人的预言是正确的,而正是这个人当了特尔斐城的预言家。能分析出这四个人的职业吗?

    答案

    1. 是让甲分汤,分好后由乙和丙按任意顺序给自己挑汤,剩余一碗留给甲。这样乙和丙两人的总和肯定是他们两人可拿到的最大。然后将他们两人的汤混合之后再按两人的方法再次分汤。

    2. 这三个人就是祖孙三代,爷爷给爸爸150元钱,爸爸给儿子100元钱。这样爸爸和儿子总共得到了150元钱,爸爸是爷爷的儿子,儿子是爸爸的儿子。这样就完全满足题意了。

    3. 15%*80%/(85%×20%+15%*80%)

    4. 70

    5. A是预言家、B是宫廷女侍、C是舞蹈家、D是演奏家,没有和阿特结婚。

    最新原创推荐:

    一文轻松理解内存对齐

    一文轻松理解打印有效日志

    一文读懂C语言与C++动态内存

    面试中常见的C语言与C++区别的问题

    数据结构之线性表

    深拷贝与浅拷贝到底是什么

    JSON封装数据和解析数据

    C/C++字符串操作的全面总结

     

    展开全文
  • 因为自己在做复选题时感觉只有一答案正确,但他是多选题,所以试错了次后,终于在第次错了要等8小时的恐惧下使用了百度,然后发现是单选.... 因为coursera经常会调整选项顺序和答案内容,比如这周第一题,...

    为什么要特别拿出来说这周呢?因为自己在做复选题时感觉只有一个答案正确,但他是多选题,所以试错了两次后,终于在第三次错了要等8小时的恐惧下使用了百度,然后发现是单选....

    因为coursera经常会调整选项顺序和答案内容,比如这周第一题,所以建议各位不要抄答案,理解了再去做。

    然后上结果,先证明自己是对的,这下你们就可以听我胡说了,23333.

    第一题

    第一个选项:加入一个新特征总可以使样本而非训练集表现更好或相同。但童鞋你要知道你是在拟合训练集啊,所以应该是训练集更好而非样本。

    第二个选项:给模型引入正则化总会在样本而非训练集上表现更好或相同,但是你要知道\lambda太大就成直线了,那是欠拟合啊。

    第三个选项:同上。

    第四个选项:加入更多特征确实是会导致过拟合。

     

    第二题,因为最后会引入正则化项,正则化参数\lambda越大,系数\theta就会越小,所以\lambda从0到1,我们只要找\theta最小的就可以了

    第三题:

    第一个选项:因为逻辑回归输出范围在[0,1]中,无论如何,正则化只能稍微收缩一下它的范围,所以正则化通常是没用的,抱歉,正则化解决的是过拟合问题,而且收缩的是\theta也不是输出。

    第二个选项:用一个大的\lambda会导致过拟合,可以通过减小\lambda来解决。抱歉,如果是欠拟合就对了。

    第三个选项:考虑一个分类问题,正则化可能会使分类错误。对呀,如果\lambda太大不就分类错了。

    第四个选项:使用一个非常大的\lambda会损害你的假设模型,我们不把它设的很多的唯一原因是避免数值问题。(可以理解为计算量大引发的计算复杂问题),同上,因为可能欠拟合。

    展开全文
  • 前言 从毕业到现在面试也就那么几家公司,单前几次都比较顺利,在面到第家时都给到了我offer!前面次找工作,没考虑到...技术上的提升可以说根本没有,和工作一年左右的人,比起来就项目优势!所以这次出来找
  • 个题我搞出来一贪心,看起来的一批,一是最小,然后二也是最小,但是不能这么搞的。因为一最小不能保证一+二的结果也是最小的。然后比完赛发现师兄们一开始也是这样,搞出来假贪心,还觉得正确的一...
  • 杂感

    2015-04-25 20:57:00
    今天考了逗比的省QAQ  第一傻逼逆序,随便离散化一下,坑点应该是$n\leq 5*10^5$,所以... 第三题多次询问点间路径最小代价,为路径上边权和+途经点(包括起点和终点)中最大的点权值。由于$n\le...
  • 如果能从五个整数中选出三个并且这三个整数的和为10 的倍数(包括 0),那么这五个整数的权值即为剩下两个没被出来的整数的和 10 取余的结果,显然如果有个三元组满⾜和是 10 的倍数,剩下两个数之和 10 ...
  • 对数组排序的方法很,我们比较常用和容易的种排序,直接插入排序,冒泡排序和快速排序。直接插入排序:每次从无序表中取出第一元素,把它插入到有序表的合适位置,使有序表仍然有序冒泡排序:比较相邻的元素。...
  • 如果能从五个整数中选出三个并且这三个整数的和为 10 的倍数(包括 0),那么这五个整数的权值即为剩下两个没被出来的整数的和 10 取余的结果,显然如果有个三元组满⾜和是 10 的倍数,剩下两个数之和 10 ...
  • 复旦大学2020考研机试题-编程能力摸底试题(A-E)

    千次阅读 多人点赞 2020-05-06 19:28:17
    如果能从五个整数中选出三个并且这三个整数的和为10的倍数(包括0),那么这五个整数的权值即为剩下两个没被出来的整数的和10取余的结果,显然如果有个三元组满 和是10的倍数,剩下两个数之和10取余的结果都...
  • 【中山市2008】小树

    2016-06-02 14:43:20
    集合中每个节点都要有两个值,wi表示到这个节点的路径上所有的边权值总和,di表示到这个节点的路径所包含的边数,现在要求sigma(wi)/sigma(di)的最大值。 组数据。第一行一个数ca,表示
  • 2020年美赛D思路与反思

    千次阅读 2020-03-16 14:29:22
    ADE三个题两个没数据,一个数据怎么这样?!还好之前学习了机器学习的部分知识加上python的熟悉(主要我是足球狗),我力排众议了D,比赛期间队友全程一脸懵逼(我怀疑到现在他们都不知道做了什么),所以...
  • 这次省没参加,首先恭喜三位神犇进队(哇咔咔咔同校三个都进了),看了看天的,一眼看上去除了这道都没什么思路(是不是早该退役了……),然后就把这道题写了写,其他都在BZOJ上,网上题解的是抄一份就...
  • 你自己的路,分不清错的时候,就记着两个字“不退”。 神回复:这就是你不给我退货的理由 ? 30 母亲节你准备送什么礼物给妈妈 ? 神回复:我给她报了四个培训班,英语一一辅导、广场舞入门、 国画基础课、...
  • 题目描述 给出一系列平面直角坐标系中的...无论多少个点都可以任意选三个点组成一个三角形,那么斜率最大的边肯定不是通过相邻的两个点,以此可知斜率最大的直线一点是由两个相邻的点画出的。 考点分析 本主要考...
  • 2020复旦大学计算机考研机试题详解

    千次阅读 2020-05-23 23:42:14
    如果能从五个整数中选出三个并且这三个整数的和为10 的倍数(包括 0),那么这五个整数的权值即为剩下两个没被出来的整数的和 10 取余的结果,显然如果有个三元组满⾜和是 10 的倍数,剩下两个数之和 10 ...
  • hdu5325 校第场1010

    2015-08-01 23:14:27
    题目描述:给出一棵树,n~5e5, 每个点都有一个权值.找出点个数最多的这样的连. 链的要求是(1)链本身是联通的,中间不能够隔着没有的点.(2)如果按照权值大小排序,我们看... 下面是一个重要的性质:一个u连接的两个儿子v1
  • 如果能从五个整数中选出三个并且这三个整数的和为10 的倍数(包括 0),那么这五个整数的权值即为剩下两个没被出来的整数的和 10 取余的结果,显然如果有个三元组满足和是 10 的倍数,剩下两个数之和 10 ...
  • 果,显然如果有个三元组满⾜和是 10 的倍数,剩下两个数之和 10 取余的结果都是相同的;如果 不出这样三个整数,则这五个整数的权值为 -1。 现在给定 T 组数据,每组数据包含五个 0~9 范围内的整数,分别求这 ...
  • 今天作了道,因为有点简单,昨晚一道发现时间还,就做一道,闲着也是闲着,为什么不学习呢?吧。。。 煤球数目: 有一堆煤球,堆成三角棱锥形。具体: 第一层放1, 第二层3(排列成三角形...
  • 多选题】以下哪种投影图的直观性最好?【单选题】图中直线的位置关系是()。【单选题】下图立体投影已知主视图和俯视图,它所对应的左视图正确的是 。【单选题】下图立体投影已知主视图和俯视图,它所对应的左视图...
  • 下列两个脚本可以二一,对于使用腾讯云镜像和Ubuntu 原版镜像的用户,推荐使用脚本二。 脚本一 wget http://dl.hustoj.com/sources.list.sh sudo bash sources.list.sh 脚本二 wget ...
  • 如果能从五个整数中选出三个并且这三个整数的和为 10 的倍数(包括 0),那么这五个整数的权值即为剩下两个没被出来的整数的和 10 取余的结果,显然如果有个三元组满⾜和是 10 的倍数,剩下两个数之和 10 ...
  • 会计理论考试

    2012-03-07 21:04:40
    4.硬盘格式化分三个阶段,其先后顺序为低级格式化、分区、高级格式化。( Y ) 5.西文工作方式下不可输入汉字。( Y ) 6.微机的键盘是一种分离式的智能键盘,通过电缆与显示器连接。( N ) 7.写保护口用于保护存储在...
  • noip提高组试题

    2018-07-12 10:44:30
    【输入输出样例】 qc.in qc.out 5 3 15 1 5 2 5 3 5 4 5 5 5 1 5 2 4 3 3 10 【输入输出样例说明】 当 W 4 的时候,三个区间上检验值分别为 20、5、0,这批矿产的检验结果为 25,此 时与标准值 S 相差最小为 10...
  • 数据库期中测试题库多选题 (数据库)是存储在计算机内有结构的数据的集合。 (数据模型)是现实世界进行抽象的工具,用于描述数据、组织数据和数据进行操作。 数据库技术奠基人之一E.F.Codd,数据库的主要...
  • 前言 从毕业到现在面试也就那么几家公司,单前几次都比较顺利,在面到第家时都给到了我offer!前面次找工作,没考虑到...技术上的提升可以说根本没有,和工作一年左右的人,比起来就项目优势!所以这次出来找

空空如也

空空如也

1 2 3 4 5 ... 7
收藏数 133
精华内容 53
关键字:

多选题三个选对两个