একাধিক পছন্দের পরীক্ষা প্রস্তুত করা হচ্ছে


12

ভূমিকা

দ্রষ্টব্য: প্রতারণাকে উত্সাহিত করার জন্য এটি কোনও ধরণের পদ্ধতি নয়। সি ও ওবি যেমন ইতিমধ্যে বলেছে, অধ্যয়ন একটি পরীক্ষা উত্তীর্ণের সেরা সমাধান: 3।

একাধিক পছন্দ পরীক্ষার নিম্নলিখিত উত্তরগুলি বিবেচনা করুন:

ABCBCAAB

এখানে একটি টেবিল যা উত্তরগুলি মেলে কিনা তা নির্দেশ করে:

    A B C B C A A B

A   1 0 0 0 0 1 1 0
B   0 1 0 1 0 0 0 1
C   0 0 1 0 1 0 0 0

এটি আমাদের নিম্নলিখিত নম্বর দেয়:

10000110, 01010001, 00101000

চ্যালেঞ্জ হ'ল এই বাইনারি নম্বরগুলি মুদ্রণ করা। তবে একাধিক পছন্দ পরীক্ষায় কোন বর্ণগুলি ব্যবহৃত হয় তা দেখতে গুরুত্বপূর্ণ । উদাহরণ স্বরূপ:

ABCDCDBCDABC

এই সর্বোচ্চ চিঠি হয় Dযা, বর্ণমালা 4 র্থ চিঠি । সুতরাং, আমাদের 4 টি বিভিন্ন বাইনারি সংখ্যা আউটপুট করতে হবে । যথা:

100000000100, 010000100010, 001010010001, 000101001000

নোট করুন যে আপনাকে সর্বোচ্চ বর্ণটি দেখতে হবে । নিম্নলিখিত উদাহরণ বিবেচনা করুন:

AACCACAC

যদিও এটি Bব্যবহৃত হয় না, এর জন্য আমাদের বাইনারি ফলাফল আউটপুট করতে হবে B। তার মানে, উত্তরটি হবে:

11001010, 00000000, 00110101

কার্য

একাধিক পছন্দ পরীক্ষার উত্তর দেওয়া, বাইনারি সংখ্যাগুলি আউটপুট করুন। আপনি ধরে নিতে পারেন যে ইনপুটটি খালি হবে না এবং কেবল অক্ষর থাকবে[A-Z] । এক এবং শূন্যের পরিবর্তে, আপনি সত্য এবং মিথ্যাও ব্যবহার করতে পারেন।


পরীক্ষার কেস:

Input: ABBBABABA
Output: 100010101, 011101010

Input: AAAAAAAAA
Output: 111111111

Input: AFGHEEHFD
Output: 100000000 000000000 000000000 000000001 000011000 010000010 001000000 000100100

Input: Z
Output: 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1

Input: ABCDCDBCDABC
Output: 100000000100, 010000100010, 001010010001, 000101001000

এটি , তাই সর্বনিম্ন পরিমাণ বাইটের সাথে জমা দেওয়া!


আমরা কি [a-z]পরিবর্তে ব্যবহার করতে পারি ?
FryAmTheEggman

@ ফ্রাইআম দ্য এজম্যান অবশ্যই :)
আদনান


আউটপুট নির্দিষ্ট করার জন্য কোনও নিয়ম নেই, বুলির 2D অ্যারে অনুমোদিত?
Eumel

উত্তর:


3

পাইথ, 12 বাইট

mqLdzfsgRTzG

বুলিয়ানগুলির নেস্টেড অ্যারে হিসাবে আউটপুট।

                Implicit: z=input
m               Map lambda d:
 qLdz            map equal-to-d over z
     f           over all letters T in the
           G     lowercase alphabet for which
      s           At least one char in z
       gRTz       >= T.

এখানে চেষ্টা করুন


6

পাইথন 3, 71

ওগাদেকে 22 বাইট সংরক্ষণ করা হয়েছে।
ডিএসএমকে 3 টি বাইট সংরক্ষণ করা হয়েছে।

বুলসের একটি অ্যারে বৈধ হওয়ার জন্য ধন্যবাদ একগুচ্ছ বাইটস সংরক্ষণ করেছেন।

*k,=map(ord,input())
x=65
while x<=max(k):print([v==x for v in k]);x+=1

বড় কমান্ড লাইন ইনপুট নেয় T



যদি এটি সাহায্য করে তবে এখন একটি অ্যুল অফ বুলও সম্ভব possible
আদনান

3

পাওয়ারশেল, 95 94 73 বাইট

param([char[]]$a)0..(($a|sort)[-1]-65)|%{$d=$_;-join($a|%{+!($_-$d-65)})}

বড় হাতের স্ট্রিং হিসাবে ইনপুট নেয়, তবে তাৎক্ষণিকভাবে এটিকে কাস্ট করে [char[]]। তারপরে আমরা বর্ণানুক্রমিকভাবে নেওয়া 0..সর্বাধিক মান থেকে লুপ করব $a(সুতরাং -65এএসসিআইআই থেকে রূপান্তর করতে)। উদাহরণস্বরূপ, এর সাথে ADCEBএটিকে লুপিং থেকে শুরু Aকরে ভাবা যায় E

প্রতিটি পুনরাবৃত্তি, আমরা একটি সহায়ক ভেরিয়েবল সেট $d বর্তমান বর্ণমালার (ASCII নয়) সমান । তারপরে আমরা $aপ্রতিটি সময় সত্য বা মিথ্যা (যেমন, আমরা সঠিক "স্লটে" থাকি কি না) এর ভিত্তিতে পাইপলাইনে 0বা 1পাইপলাইনে রেখে প্রতিটিটি লুপ $_-$d-65করি। এই কাজ কারণ PowerShell কোনো অ শূন্য মান অর্থ যদি আমাদের বর্তমান অক্ষর, truthy হয় $_না "সমান" কি স্লট আমরা আছি $d, তারপর !যে হয় $false, অথবা 0

0S এবং 1s এর এই অ্যারেগুলির প্রত্যেকটির -joinএকসাথে এড করা হয় এবং পাইপলাইনে আবার লাগানো হয়। বাইরের লুপটি শেষ হয়ে গেলে, আমাদের কাছে স্ট্রিংগুলির একটি অ্যারে থাকে, যা প্রতি লাইনে একটি স্ট্রিং প্রিন্ট করবে।

উদাহরণ

PS C:\Tools\Scripts\golfing> .\preparing-a-multiple-choice-test.ps1 ABCDEFGH
10000000
01000000
00100000
00010000
00001000
00000100
00000010
00000001

PS C:\Tools\Scripts\golfing> .\preparing-a-multiple-choice-test.ps1 AFGHEEHFD
100000000
000000000
000000000
000000001
000011000
010000010
001000000
000100100

সম্পাদনা 1 - বেকিয়ান-ওয়াকের পরিবর্তে নয় বুলিয়ান ব্যবহার করে একটি বাইট সংরক্ষণ করেছে
2 - অতিরিক্ত অ্যারে $ বি মুছে ফেলে আরও 21 বাইট সংরক্ষণ করেছেন


যদি এটি সাহায্য করে তবে এখন একটি অ্যুল অফ বুলও সম্ভব possible
আদনান

3

ল্যাবভিউ, 30 22 20 ল্যাবভিউ পুরষ্কার

সমস্ত বুলের যোগফল ইনপুট দৈর্ঘ্যের সমান না হওয়া অবধি অ্যাজ থেকে শুরু করে। তারপরে বাউলগুলিকে সংখ্যায় রূপান্তরিত করে।

এখন সরাসরি বুল যোগফল পরীক্ষা করার পরিবর্তে সর্বোচ্চটি নেয়।

যেহেতু 2 ডি বুলগুলি এখন সবুজ তারের সামনে সামনে আউটপুট করে 2 টি প্রিমিটিভকে সংরক্ষণ ?1:0করতে পারে তবে তা আবার করা সম্ভব তবে আমি খুব অলস ...

নতুন কোড পুরানো কোড


যদি এটি সাহায্য করে তবে এখন একটি অ্যুল অফ বুলও সম্ভব possible
আদনান

2

সিজাম, 25 বাইট

l{'A-i}%_:e>),\f{f=", "}

দীর্ঘশ্বাস,

ব্যাখ্যা

l{'A-i}%_:e>),\f{f=", "}
l                        e# get the input
 {'A-i}%                 e# get the normalized array
        _:e>             e# get the maximum value
            ),           e# create the array from 1..N
              \f{      } e# map over the created array
                 f=      e# 1 if match, 0 if not
                   ", "  e# add separator

1 কে রেপ বিটিডাব্লুতে অভিনন্দন!
নীল

যদি এটি সাহায্য করে তবে এখন একটি অ্যুল অফ বুলও সম্ভব possible
আদনান

2

হাস্কেল, 46 34 বাইট

g x=(<$>x).(==)<$>['A'..maximum x]

ব্যবহারের উদাহরণ: g "ACDC"-> [[True,False,False,False],[False,False,False,False],[False,True,False,True],[False,False,True,False]]

কিভাবে এটা কাজ করে:

        <$>['A'..maximum x]   -- for every letter from A to the highest letter in x
<$>x                          -- loop over x and
      ==                      -- compare the letter with the current element in x
                              -- which results in a boolean          

2

পাইথ, 20 19 17 15 14 বাইট

VhxGeSzmq@GNdz

ব্যাখ্যা:

               - autoassign z = input()
V              - For N in range(V)
 hxGeSz
    eSz        - max(z)
  xG           - lowercase_alphabet.index(^)
 h             - +1
       mq@GNdz
       m     z - [V for d in z]
         @GN   - lowercase_alphabet[N]
        q   d  - is_equal(^, ^^)
               - print "".join(^)

বুলসের 2D অ্যারে আউটপুট করে

এখানে চেষ্টা করুন


2

ES6, 92 বাইট

s=>[..."ABCDEFGHIJKLMNOPQRSTUVWXYZ"].map(c=>[...s].map(m=>m==c&&!!(l=n),n++),n=0).slice(0,l)

ফলস এবং ট্রুয়ের অ্যারের অ্যারে প্রদান করে। আপনি যদি জিরো এবং এর স্ট্রিংগুলির একটি অ্যারে পছন্দ করেন তবে 97 বাইটের জন্য:

s=>[..."ABCDEFGHIJKLMNOPQRSTUVWXYZ"].map(c=>s.replace(/./g,m=>m==c?(l=n,1):0,n++),n=0).slice(0,l)

2

অক্টাভা, 19 বাইট

@(s)s==[65:max(s)]'

পরিসীমা জুড়ে অক্টাভের স্বয়ংক্রিয় সম্প্রচার ব্যবহার করে Aমিলের উপাদানগুলির 2 ডি বুলিয়ান অ্যারে উত্পাদন করতে ইনপুটটিতে সর্বাধিক উপাদান করে।

উদাহরণ:

Key = ABCDCDBCDABC

ans =

   1   0   0   0   0   0   0   0   0   1   0   0
   0   1   0   0   0   0   1   0   0   0   1   0
   0   0   1   0   1   0   0   1   0   0   0   1
   0   0   0   1   0   1   0   0   1   0   0   0

তা এখানে ব্যবহার করে দেখুন ideone


1

লুয়া, 208 189 বাইট

লুয়ায় এটি মুশকিল ছিল, যথারীতি, আমাদের স্ক্র্যাচ থেকে সবকিছু করতে হবে, এবং এটি অনেক জায়গা নেয়! এই প্রোগ্রামটি আর্গুমেন্ট হিসাবে একটি স্ট্রিং নেয় এবং ফলাফলটি মুদ্রণ করে :)।

সম্পাদনা: @ আদনান আমাকে বলেছিলেন যে আমাদের এখন বুলেটিয়ানদের একটি ম্যাট্রিক্স ফেরত দেওয়ার অনুমতি দেওয়া হয়েছে, সুতরাং এখানে একটি নতুন সংস্করণ রয়েছে! এটি এখন এমন একটি ফাংশন যা মূলধনী চরিত্রের স্ট্রিং নেয় এবং ম্যাট্রিক্স ফেরত দেয় :)।

function f(x)a={}b={}for i=1,#x do a[i]=x:sub(i,i)end table.sort(a)for i=1,a[#a]:byte()-64 do b[i]={}end x:gsub(".",function(c)for i=1,#b do z=b[i]z[#z+1]=i+64==c:byte()end end)return b end

পুরানো 208 বাইট সংস্করণ

এটিই যুক্তি এবং মুদ্রণের ফলাফলগুলির সাথে কাজ করে।

a={}b={}x=arg[1]for i=1,#x do a[i]=x:sub(i,i)end table.sort(a)for i=1,a[#a]:byte()-64 do b[i]=""end x:gsub(".",function(c)for i=1,#b do b[i]=b[i]..(i+64==c:byte()and"1"or"0")end end)print(table.concat(b,","))

অবহেলিত এবং ব্যাখ্যা

function f(x)
a={}                   -- We need 2 arrays, and while b=a would have been shorter
b={}                   -- arrays in lua are passed by pointer, so it wouldn't have worked

for i=1,#x             -- iterate over the inpute to transform the string
do                     -- into an array
  a[i]=x:sub(i,i)      -- with each cells containing a characyer
end
table.sort(a)          -- sort the array/string

for i=1,               -- iterate n times were n is the place in the alphabet
       a[#a]:byte()-64 -- of the last element of the (sorted) array a
do
  b[i]={}              -- initialise cells in b up to n with empty arrays
end                    -- a cell's index is the position of a letter in the alphabet

x:gsub(".",function(c) -- for each character in the input
  for i=1,#b           -- iterate over each cells in b
  do
    z=b[i]             -- define z pointing on the array b[i]
    z[#z+1]=           -- insert into b[i] the result of the
       i+64==c:byte()  -- comparison of the current char, and the answer
  end
end)
return b
end

লুয়ায় একটি অ্যারের মুদ্রণের চেষ্টা করার ফলে এর ঠিকানাটি মুদ্রণ হবে এবং বালগুলি সংঘবদ্ধ করা অসম্ভব। সুতরাং এখানে একটি ফাংশন যা আপনাকে এই জমাটি পরীক্ষা করতে চাইলে আপনাকে সহায়তা করবে

function f(x)a={}b={}for i=1,#x do a[i]=x:sub(i,i)end table.sort(a)for i=1,a[#a]:byte()-64 do b[i]={}end x:gsub(".",function(c)for i=1,#b do z=b[i]z[#z+1]=i+64==c:byte()end end)return b end

function printBooleanMatrix(m)
  s="{"
  for i=1,#m
  do
    s=s.."{"
    for j=1,#m[i]
    do
      s=s..(m[i][j]and"1"or"0")..(j==#m[i]and""or",")
    end
    s=s.."}"..(i==#m and""or",\n")
  end
  print(s.."}")
end

printBooleanMatrix(f("ABBCCDDC"))

যদি এটি সাহায্য করে তবে এখন একটি অ্যুল অফ বুলও সম্ভব possible
আদনান

@ অ্যাডনান ভাল, এটি আমাকে প্রচুর বাইট বাদ দিতে দেয়। আমি পরীক্ষার উদ্দেশ্যে পরিষ্কার আউটপুট পেতে একটি ফাংশন লিখছি, তারপরে একটি সংশোধিত সংস্করণ পোস্ট করুন :)
কেটেনকিয়ো

1

পার্ল, 84 বাইট

$\="\n";@i=split//,<>;pop@i;for$c('a'..(reverse sort@i)[0]){print map{/$c/?1:0}@i;}

ওহে প্রিয়, আমি হাইলাইটারটি ভেঙে ফেলেছি বলে মনে হচ্ছে।

অবরুদ্ধ সংস্করণ:

# output formatting
$\ = "\n";
# get input chars as array
@i = split //, <>;
# lose the newline
pop @i;
# iterate over characters up to the max
for $c ('a'..(reverse sort @i)[0]) {
    # print 1 for each match, 0 otherwise
    print map { /$c/ ? 1 : 0 } @i;
}

1

পিএইচপি, 106 92 90 87 বাইট

উইন্ডোজ -১২২২ এনকোডিং ব্যবহার করে।

for($x=A;$x++<=max($z=str_split($argv[1]));print~Ó)for(;$c=$z[+$$x++];)echo+(++$c==$x);

এটি চালান ( -dকেবল নান্দনিকতার জন্য যুক্ত):

php -d error_reporting=30709 -r 'for($x=A;$x++<=max($z=str_split($argv[1]));print~Ó)for(;$c=$z[+$$x++];)echo+(++$c==$x); echo"\n";' ABCDDHFHUYFSJGK
  • চারপাশে অন্যভাবে লুপগুলি বাসা বেঁধে 14 বাইট সংরক্ষণ করা হয়েছে
  • প্রতিরোধের জন্য ভেরিয়েবল ভেরিয়েবল ব্যবহার করে 2 বাইট সংরক্ষণ করা $i=0
  • স্ট্রিং উল্টিয়ে স্ট্রিং ডিলিমিটারগুলি ফেলে একটি বাইট সংরক্ষণ করেছেন
  • লুপের জন্য প্রথমটির ভিতরে ইকোটি (ফিট করার জন্য প্রিন্টে রূপান্তরিত) এবং কোঁকড়ানো ধনুর্বন্ধনী বাদ দিয়ে একটি বাইট সংরক্ষণ করা হয়েছে
  • $xঅন্য কোথাও বৃদ্ধি করে $cএবং ক্ষতিপূরণ বাড়িয়ে একটি বাইট সংরক্ষণ করেছেন


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