我們在做某某調查問卷,試卷等型別的開發的時候,總會避免不了多選題。然而很多時候,乙個多選題的設計,會引來不同的開發結果,這個因人而異。
以下是我對多選題的設計,提出的解決方法。
我們在高中時代,想必大家對集合的概念都很熟悉吧。下面就來介紹集合是如何解決多選題統分的。
有差集,不給分
無交集,不給分(排除上乙個後這個是考慮空白答卷的情況,如果確認不會有白卷這句可以不用)
無差集,有交集,交集數量!=答卷,半分
無差集,有交集,交集數量=答卷,滿分(這個可以不寫邏輯,直接用else也行,因為排除上面幾種情況剩下就是交集相等)
附上linq差集、交集、並集的計算
list lista = new list();list
listb = new list();
list
listresult = new list();
listresult = lista.distinct().tolist();//
去重listresult = lista.except(listb).tolist();//
差集listresult= lista.union(listb).tolist(); //
並集listresult = lista.intersect(listb).tolist();//
交集
(2)位運算
可以用位運算來計算
a:1 b:2 c:4 d:8
如何選擇ab 則為3
如何選擇abcd 則為15
比如正確為4 則 看看選擇的結果為n跟4比
if(n==4) 3分
if 4&n==n 2分
其他 0分
位運算是不錯的選擇,很方便。可是位運算有個取值只能在2^64範圍之中,想必超過64個選項的話,就不符合有些專案的實際需求了。
乙個memset引發的血案
前幾天做了一道bst題,提交了幾次都是wa,今天抽空拿了出來仔細瞧瞧總算被我發現禍頭根源.總結原因還在於自己對memset不太了解,以前用對估計也是瞎貓撞見死耗子 memset的介紹 void memset void buffer,int ch,size t count buffer 指向某段記憶體...
乙個分號引發的「血案」
再多的表情也無法詮釋我現在的心情!a b for matrices 這是很水的一道題,然而卻整整折騰了我2個多小時。從晚上6點多開始,花了沒幾分鐘就把 敲好了,可是資料一測,竟然不對,然後就開始找問題,找了很久,我竟然都還沒看出問題在哪,越找心裡越不爽,這麼做明明對的呀,一執行怎麼就錯了呢?一直到了...
乙個strlen引發的血案
部分測試 原來是這樣的 int decryptrelation aesdecryptfromfiletobytes const std string in file path,unsigned char out data,const char aes encrypt key,int in data ...