परीक्षण यादृच्छिक करें


21

मैं एक शिक्षक हूँ , और कुछ ही दिनों में मुझे अपने छात्रों को एक परीक्षा देनी है। अब, मैं अपने सबसे प्यारे छात्रों के बारे में हमेशा चिंतित रहता हूं कि जब वे धोखा देते हैं, तो वे कम से कम प्रेमी से आहत होते हैं, इसलिए मैं परीक्षणों को यादृच्छिक बनाना चाहता हूं ताकि कोई भी किसी को धोखा न दे सके।

अभी, इस प्रारूप में मेरे परीक्षण सहेजे गए हैं:

When was Java invented?
  Why does this matter?
  1941
  War was beginning
  None of the above

What is the increment operator in Java?
  Stack Overflow>how 2 incrememnt
  Google>how 2 incrememnt
  increment
  ++

यही है, सवालों को एक रिक्त रेखा से अलग किया जाता है, और उत्तर सभी दो स्थानों से पहले होते हैं। यह वह आउटपुट है जिसकी मुझे आवश्यकता है:

What is the increment operator in Java?
  ++
  increment
  Google>how 2 incrememnt
  Stack Overflow>how 2 incrememnt

When was Java invented?
  War was beginning
  1941
  Why does this matter?
  None of the above

अर्थात्, प्रत्येक प्रश्न का उत्तर यादृच्छिक क्रम में होता है, और प्रश्न क्रम यादृच्छिक रूप में भी होता है। ध्यान रखें कि यदि उत्तर विकल्प "उपरोक्त में से कोई नहीं" है, तो इसे नीचे रहना चाहिए। हर प्रश्न के हमेशा चार उत्तर होते हैं, और "उपरोक्त में से कोई भी नहीं" केवल अंतिम उत्तर विकल्प के रूप में प्रकट होता है - और कभी भी उत्तर विकल्प के विकल्प के रूप में प्रकट नहीं होता है जो "उपरोक्त में से कोई नहीं" है। दुर्भाग्य से, मैं अपने सभी परीक्षणों को फिर से नहीं लिख सकता, इसलिए आपको उन्हें उस प्रारूप में लेना होगा। इसके अलावा, मेरे छात्रों को इसे पढ़ने में सक्षम होना चाहिए, इसलिए मैं वास्तव में किसी अन्य तरीके से आउटपुट नहीं ले सकता (सिवाय नीचे वर्णित)।

मुझे इसकी पूरी तरह से यादृच्छिक होने की आवश्यकता नहीं है। जब तक यह करीब है।

मानक खामियों पर रोक लगाई जाती है।


बोनस

अब, मेरे छात्रों को उस सादे प्रारूप में उपयोग किया जाता है, लेकिन अगर आप इसे इस तरह से बना सकते हैं ...

1. What is the increment operator in Java?
  A. ++
  B. increment
  C. Google>how 2 incrememnt
  D. Stack Overflow>how 2 incrememnt

2. When was Java invented?
  A. War was beginning
  B. 1941
  C. Why does this matter?
  D. None of the above

मैं आपके अंतिम स्कोर का 25% हिस्सा लूंगा। आपको वैसे ही इनपुट मिलेगा।

यही है, यदि आप प्रश्न पूछते हैं और उत्तरों को लेबल करते हैं। कृपया ध्यान रखें कि प्रश्न 1 से शुरू होने चाहिए, और उत्तर ए से डी तक हैं।


NB: उदाहरण उत्तर में लोगों से अलग हैं क्योंकि मैंने उन्हें तथ्य के बाद बदल दिया था। विशिष्ट उदाहरण वैसे भी बिंदु नहीं हैं; उत्तरों को किसी भी मनमाने प्रश्न के साथ काम करना था।


कोड गोल्फ में बोनस आमतौर पर हतोत्साहित किया जाता है । वर्तमान प्रस्तुतियाँ में से कोई भी बोनस लेने (सिवाय इस एक है, लेकिन बोनस के साथ के बिना से भी बदतर एक स्कोर है), तो यह है कि एक बहुत अच्छा संकेत है कि चुनौती बोनस के बिना बेहतर होगा है।
मेगो

@ मेगो यह सवाल के विषय को फिट करता है और समझने में आसान है। इसमें कोई बुराई नहीं है।
निधि मोनिका का मुकदमा

जवाबों:


7

पायथ - 48 42 41 39 बाइट्स

पैक्ड स्ट्रिंग होगा।

js.Sm++hd/D"None of the above".Stdkc.zk

इसे यहाँ ऑनलाइन आज़माएँ


इस उत्तर को स्वीकार करना क्योंकि यह प्रश्न [कोड-गोल्फ] था और यह उत्तर सबसे छोटा है। बहुत बढ़िया!
निधि मोनिका का मुकदमा

4

जावास्क्रिप्ट ईएस 6, 170 बाइट्स

एक अनाम फ़ंक्शन है, इसे नाम दें। नोट: यह रैंडम सॉर्ट विधि का उपयोग करता है, जो पूरी तरह से रैंडम नहीं है , लेकिन पर्याप्त है, बशर्ते आप एक संभावना शिक्षक न हों।

t=>t.split`

`.map(x=>(x=x.split`
`,R=[],(k=x.pop())=="  None of the above"?(R=[k]):x.push(k),[x.shift(),...x.sort(r=_=>.5-Math.random()),...R].join`
`)).sort(r).join`

`

बोनस के साथ, 180.75 बाइट्स

t=>t.split`

`.map(x=>(x=x.split`
`,R=[],(k=x.pop())=="  None of the above"?(R=[k]):x.push(k),[x.shift(),...x.sort(r=_=>.5-Math.random()),...R].map((k,i)=>(i?`  ${" ABCD"[i]}. `:"")+k.trim()).join`
`),a=0).sort(r).map(e=>++a+". "+e).join`

`

इसका परीक्षण करो!


क्या आपने बोनस के लिए जाने की कोशिश की?
कैलक्यूलेटरफलिन

@CatsAreFluffy नहीं, नेट अभी तक;)
कॉनर ओ'ब्रायन

1
@CatsAreFluffy खैर, यह एक उच्च तकनीकी ... बात है।
कॉनर ओ'ब्रायन

3
क्या एक अत्यधिक है? क्या बात है? तकनीकी क्या है? क्या है ? क्या है ...? 493 अक्षर क्या शेष हैं?
कैलक्यूलेटरफिलीन 1

1
@ fond42518 मेरी खुशी! हालाँकि, उस यादृच्छिक क्रम में, मैं फ़ंक्शन _=>.5-Math.random()को वैरिएबल में सहेज रहा हूं r, जिसे मैं बाद में पांचवीं पंक्ति में संदर्भित करता हूं। मैं वास्तव में दो यादृच्छिक प्रकार का प्रदर्शन कर रहा हूं: एक आइटम पर, और दूसरा प्रश्नों पर। यदि आप अधिक ES6 सीखना चाहते हैं, तो मैं यहाँ पढ़ने का सुझाव देता हूँ ।
कॉनर ओ'ब्रायन

2

CJam, 54 53 55 52 बाइट्स

बाद में रिलीज (टीआईओ पर उपलब्ध) का उपयोग करने से 1 बाइट बचा। 2 बाइट्स दिए गए क्योंकि मैं सवालों के क्रम को यादृच्छिक बनाना भूल गया था। TIO पर अभी तक तय किए गए एक और बग से 2 बाइट्स बचाए।

qNN+/mr{N/(\mr_"  None of the above"#3e\N*N\++}%NN+*

इसे ऑनलाइन आज़माएं!


केवल दो बाइट्स प्राप्त की? o_O
कॉनर ओ'ब्रायन

@ C @O'Bʀɪᴇɴ lol हाँ, मैं शुरुआत में सवालों के आधार पर अलग हो गया, तो इसलिए मैंने mrउत्तर तर्क के आने से पहले ही सवालों के क्रम को यादृच्छिक बनाने के लिए ऑपरेटर (यादृच्छिक) जोड़ दिया ।
GamrCorps
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.