গ্রেড আমার স্ক্যান-ট্রন!


10

স্ট্যান্ডার্ডাইজড টেস্টিং সাধারণত স্ক্যান-ট্রোন বা কিছু ধরণের উত্তর ডকুমেন্টের সাথে আসে যা আপনার উত্তরটি রেকর্ড করে। একটি কম্পিউটার বা মানব (গুলি) এর পরে আপনার উত্তরগুলি পরীক্ষা করে আপনার গ্রেড নির্ধারণ করবে। সুতরাং এখানে, একটি স্ক্যান-ট্রোন এবং উত্তর কী দেওয়া, স্কোর এবং প্রশ্নগুলি যদি কোনও মিস হয় তা নির্ধারণ করুন। স্ক্যান-ট্রোন হ'ল একাধিক লাইনের উত্তর সহ একটি ডকুমেন্ট যা ব্যবহারকারী পূরণ করে (এই ক্ষেত্রে, প্রদত্ত)। উদাহরণ:

   ---
1. |a| b c d
   --- 

আপনি দেখতে পাচ্ছেন, এটি উত্তর পছন্দ সহ প্রশ্ন 1 হ'ল aএটির চারপাশে একটি বাক্স রয়েছে। চ্যালেঞ্জ জন্য আপনার সাথে একটি স্ক্যান-Tron দেওয়া হবে nপ্রশ্ন ( 1 <= n <= 10) মাত্র চারটি উত্তরের সঙ্গে প্রকাশ যেমন a, b, c, অথবা d। উত্তর কী কোনও ফাঁকা জায়গা এবং সমস্ত ছোট হাতের স্ট্রিং হিসাবে দেওয়া হবে। উত্তর কী সহ স্ক্যান-ট্রোন উদাহরণ:

Scan-tron
   ---
1. |a| b c d
   ---
     ---
2. a |b| c d
     ---
       ---
3. a b |c| d
       ---

Answer Key
abb

আপনি উত্তর কী এবং স্ক্যান-ট্রনকে আলাদা ইনপুট হিসাবে বা কোনও নির্বাচিত ক্রমে সনাক্ত করতে পারেন যতক্ষণ না তাদের সনাক্ত করা যায় (অর্থাত্ উত্তর কীটি স্ক্যান-ট্রোন থেকে পৃথক করা হয়)। স্কোরগুলি বিন্দুর নিকটতম দশমীতে গোল করা হবে। উপরের উদাহরণগুলির জন্য উদাহরণ:

Score: 66.7
Missed #: 3

অন্যান্য গ্রহণযোগ্য উত্তর হবে:

66.7 
3

অথবা যদি একাধিক প্রশ্ন মিস হয়

66.7
3 4 5

যতক্ষণ না মিস হয়েছে তাদের প্রশ্নের নম্বরগুলি ফাঁকা জায়গা থেকে আলাদা করা হবে এবং স্কোরের মতো একই লাইনে নয়।

বিধি এবং চশমা

  • স্ক্যান-ট্রনটি একসাথে একাধিক-লাইন স্ট্রিং বা একটি প্রশ্ন হিসাবে ইনপুট করা যায় (নতুন লাইনের সাথে স্ট্রিং গ্রহণযোগ্য হিসাবে)
  • একটি স্ক্যান-ট্রোন এবং উত্তর কী দেওয়া, আপনাকে অবশ্যই এক লাইনে স্কোর আউটপুট করতে হবে এবং প্রশ্নগুলি গুলি অন্যের সাথে মিস করবে, সংখ্যাগুলি ফাঁক দিয়ে পৃথক করে। যদি কোনও প্রশ্ন মিস না হয় তবে কোনও প্রশ্ন নম্বর আউটপুট করা উচিত নয়
  • স্কোরগুলি নিকটতম দশমীতে গোল হয়
  • নির্বাচিত উত্তরগুলি এই বাক্স দ্বারা বেষ্টিত:

    ---
    | |
    ---
    
  • স্ক্যান-ট্রোনটিতে প্রতিটি প্রশ্নের জন্য তিনটি স্পেস লাগে (বাক্সের উপরে এবং নীচে দুটি অতিরিক্ত লাইন লাগে)
  • উপরের উদাহরণের জন্য অবশ্যই কাজ করা উচিত
  • ধরে নিন যে সর্বদা একটি উত্তর বাক্স থাকবে

বিজয়ী মানদণ্ড

সবচেয়ে কম কোড জয়!


স্ক্যান ট্রোন প্রশ্নের তালিকা হতে পারে? এবং প্রতিটি প্রশ্নই নতুন লাইনের সাথে একক স্ট্রিং হতে পারে?
রড

@ রড হ্যাঁ এবং আমি এটি পরিষ্কার করব
অ্যান্থনি ফ্যাম

2
"মিস" এর ভাষা আমার কাছে বিভ্রান্তিকর, যেহেতু একটি "মিস" প্রশ্নের অর্থ এমন একটি প্রশ্নের অর্থ হতে পারে যা শিক্ষার্থী উত্তর দিতে ব্যর্থ হয়েছিল (আপনার আপাত অর্থের বিপরীতে, ভুলভাবে উত্তর দিয়েছে )।
DLosc

@ ডিএলকাস সর্বদা কেবল একটি প্রদত্ত উত্তর থাকবে
অ্যান্থনি ফ্যাম

একটি স্কোর 50গ্রহণযোগ্য মত হয় , বা এটি করা আছে 50.0?
DLosc

উত্তর:


2

05 এ বি 1 ই , 43 বাইট

U|3ôø`\vyy'|k>èXNèQˆ}¯OXg/3°*2z+ïT/XgL¯_Ï‚»

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

U                                            # store the answer key in X
 |3ô                                         # split the question-rows in chunks of 3
    ø`                                       # zip and flatten
      \                                      # discard top of stack, leaving the list of
                                             # answer rows on top
       v                                     # for each answer row
         y'|k                                # get the index of the first "|"
        y    >è                              # get the character after that from the row
               XNèQ                          # compare it to the corresponding entry in 
                                             # the answer key
                   ˆ                         # add it to the global list
                    }                        # end loop
                     ¯O                      # calculate the number of correct answers
                       Xg/                   # divide by the length of the answer key
                          3°*                # multiply by 1000
                             2z+             # add 0.5
                                ï            # convert to integer
                                 T/          # divide by 10
                                   XgL       # push range [1 ... len(answer key)]
                                      ¯_Ï    # keep only numbers corresponding to 
                                             # wrong answers
                                          ‚» # format output

4

স্ট্যাকড , 68 + 1 = 69 বাইট

'|'split[#'1-]NO neq::size:@z~>*[]YES' '#`out is0 sum z/100*1 nround

এটি অনলাইন চেষ্টা করুন! -pপতাকা জন্য +1 (এই স্ক্রিপ্ট হিসাবে চালানো যেতে পারে stacked -pe "...")

স্ট্যাকের শীর্ষ থেকে দুটি ইনপুট নেয়।

কিছু আকর্ষণীয় বৈশিষ্ট্য:

[#'1-]NO
[    ]NO   do not keep members where
 #'          its length
   1-          -1
             is truthy (in this case, not equal to zero).

এটি পাইপ দ্বারা বেষ্টিত সমস্ত অক্ষর উত্পাদন করে।

:size:@z~>*[]YES
:                 duplicate indices of incorrect answers
 size             length of incorrect answers
     :@z          (stored into z)
        ~>        range from 1 to this length
          *       and multiply by this range
           []YES  keep truthy elements

এটি আমাদের সমস্ত ভুল প্রশ্ন নম্বর দেয়।


3

পাইথন 2 , 94 93 বাইট

-1 বাইট L3viathan ধন্যবাদ

s,a=input()
l=len(s)
w=[i+1for i in range(l)if"|%s|"%a[i]not in s[i]]
print(l-len(w))*1e2/l,w

এটি অনলাইন চেষ্টা করুন!


ভাল, আমার চেয়ে অনেক ভাল। আপনি প্রতিস্থাপন করতে পারেন 100.সঙ্গে1e2
L3viathan

আমি বিশ্বাস করি না যে এটি "পয়েন্টের নিকটতম দশমী" এর স্কোরকে গোল করার প্রয়োজনীয়তা পূরণ করে?
ডিএলসক

3

বীচি , 49 46 44 48 45 বাইট

উঘ, এই রাউন্ডিংটিতে অনেকগুলি বাইট লাগে ... 44 বাইট কোডের জন্য, -sপতাকাটির জন্য +1 ।

(/2+m-m/#b*#P_FI{++nbNa?un}MZa@`\|..`b)//1/t

কমান্ড-লাইন আর্গুমেন্ট হিসাবে ইনপুট নেয় (স্ক্যান-ট্রোন পৃষ্ঠাটি যদি আপনি একটি সত্যিকারের কমান্ড লাইন থেকে চালান তবে নতুন লাইনের উদ্ধৃতি এবং পলায়নের প্রয়োজন হবে)। প্রথমে মিস করা প্রশ্নের আউটপুট দেয়, তারপরে স্কোর। এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

আমি এটি দুটি অংশে করব: ভুল প্রশ্নাবলীর তালিকা এবং স্কোর।

P_FI{++nbNa?un}MZa@`\|..`b
                            a,b are cmdline args, u is nil, n is newline (implicit)
                            Note that a string like n, in math contexts, is equivalent to 0
                 a@`\|..`   Find all occurrences in a of | followed by 2 chars
                            Because regex matches don't overlap, this does what we need
    {         }MZ        b  Zip with b and map this function to each pair of items:
     ++n                     Increment n (so the first time through, it's 1)
        bNa                  Is 2nd arg a substring of 1st?
           ?un               If so, return nil; if not, return n
                            Now we have a list containing nil for correct questions
                            and the question number for incorrect questions
 _FI                        Filter on identity function (keep only truthy values)
P                           Print, joining on spaces (-s flag)

(/2+m-m/#b*#...)//1/t
                       a,b are cmdline args, m is 1000 (implicit)
            ...        The code from the first part
           #           Length of that list (i.e. number of incorrect questions)
      m/#b*            Times 1000/(number of questions)
    m-                 Subtracted from 1000
 /2+                   Plus 1/2 (= 0.5)
                       We now have a number like 667.1666666666667
(              )//1    Int-divide by 1 to truncate
                   /t  and divide that by 10
                       Print (implicit)

2

জাভাস্ক্রিপ্ট (ES6), 88 বাইট

x=>y=>x.replace(/\w(?=\|)/g,c=>c==y[i++]?t++:a+=i+" ",a=i=t="")&&(t/i*1e3+.5|0)/10+`
`+a

কমা ব্যবহার করে এবং এক লাইনে সমস্ত কিছু ফিরিয়ে দিয়ে আমি 5 বাইট সংরক্ষণ করতে পারলাম:

x=>y=>x.replace(/\w(?=\|)/g,c=>c==y[i++]?t++:a+=[,i],a=i=t="")&&(t/i*1e3+.5|0)/10+a

1

ব্যাচ, 242 বাইট

@echo off
set/as=c=0
set m=
set/pk=
:l
set/ac+=1
set/pt=
set/pl=
set/pt=
set "l=%l:*|=%
if %l:~,1%==%k:~,1% (set/as+=1)else set m=%m% %c%
set k=%k:~1%
if not "%k%"=="" goto l
set/as=(s*2000/c+1)/2
echo(%s:~,-1%.%s:~-1%
echo(%m%

প্রথমে STDIN এর উত্তর কীতে পড়ে, তারপরে n*3প্রশ্ন সারি। দ্রষ্টব্য: স্কোরটি যদি কম হয় তবে একটি অগ্রণী শূন্য ছাড়াই মুদ্রিত হয় 1.0। মিস করা উত্তরগুলি একটি শীর্ষস্থানীয় স্থান সহ মুদ্রিত হয়।


0

সিজেম , 47 45 বাইট

lqN/(;3%_'|f#:).=.=__:+\,d/e2XmOn:!_,,:).*0-p

এটি অনলাইন চেষ্টা করুন!

ব্যাখ্যা

প্রোগ্রামটি তিনটি প্রধান অংশে রয়েছে:

Right/wrong list

l                    e# Read the first line of input (answer key)
 qN/                 e# Read the rest of the input and split it on newlines
    (;3%             e# Delete the first line, then select every 3rd line 
        _            e# Duplicate the array
         '|f#        e# Find the index of the first | in each answer
             :)      e# Increment each, gives the index of the selected letter for each answer
               .=    e# Vectorized get-element-at with the answer strings
                 .=  e# Vectorized equality check with the answer key

এই বিভাগের পরে, আমাদের 0গুলি এবং 1গুলিগুলির একটি অ্যারে রয়েছে , যেখানে 0একটি ভুল উত্তর এবং 1সঠিক উত্তর নির্দেশ করে।

Score

__              e# Duplicate the right/wrong list twice
  :+            e# Take the sum of it (number of right answers)
    \,          e# Swap top elements and take the length (total number of questions)
      d/        e# Divide (casting to double so it's not integer division)
        e2      e# Multiply by 10^2
          XmO   e# Round to 1 decimal place
             n  e# Pop and print with a newline

এই বিভাগের পরে, স্ট্যাকটিতে কেবল সঠিক / ভুল তালিকা রয়েছে এবং শতাংশের স্কোর আউটপুট।

Wrong answers

:!            e# Logically negate each element of the right/wrong list
  _,,:)       e# Generate the inclusive range 1...length(list)
       .*     e# Vectorized multiplication of the two lists
         0-   e# Remove any 0s from the result
           p  e# Print it

0

জल्फ, 46 বাইট

আমি 46 বাইট ভাঙতে পারি না বলে মনে হচ্ছে। আমার এই দৈর্ঘ্যের দুটি সমাধান রয়েছে। এখানে একটি চেষ্টা করুন!

ΆRγψ~mΖ mi«\|..»d?=€H.xSEhSdHήSmX*~1/-lζlγlζ_1

( পরবর্তী একের সাথে প্রতিস্থাপন করুন 0x7f)

ΆRγψΜΖψGi'|d=1lHd?□=H.xShSEdHήSmX*~1/-lζlγlζ_1

উভয় ক্ষেত্রেই, 15 rounding জন্য বাইট: mX*~1/-lζlγlζ_1। ফলাফলগুলি পাওয়ার জন্য একটি রেজেেক্স ম্যাচ ব্যবহার করে এবং অন্যটি পাইপগুলিতে বিভক্ত হয় তবে বেশিরভাগ অংশে তারা একই থাকে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.