খনিগুলির এই পুরস্কারগুলি সর্বদা সলিড লাইনে থাকে


12

আসুন স্পেস এবং আন্ডারস্কোরগুলির একটি N × গ্রিড তৈরি করুন যা কোনও সংখ্যা প্রধান কিনা তা চাক্ষুষভাবে নির্ধারণ করতে ব্যবহার করা যেতে পারে। (এন কোনও ধনাত্মক পূর্ণসংখ্যার হতে পারে))

এই গ্রিডটির তিনটি সহজ নিয়ম রয়েছে:

  1. নবম কলামে n - 1 এর পুনরাবৃত্তি প্যাটার্নটি রয়েছে একটি স্পেস অনুসরণ করে 1 টি আন্ডারস্কোর। এই প্যাটার্নটি প্রথম সারিতে শুরু হয় এবং সম্ভবত মধ্য-প্যাটার্নটি সারি এন এ থামানো হবে (সারি এবং কলামগুলি 1 সূচকযুক্ত))
  2. প্রথম কলামটি সমস্ত জায়গার পরিবর্তে সমস্ত আন্ডারস্কোর দিয়ে প্রতিস্থাপন করা হবে।
  3. কোনও স্থান যদি কোথাও ঘটে তবে সারি সূচক কলাম সূচির সমান হয় এটি একটি আন্ডারস্কোর দিয়ে প্রতিস্থাপন করা হয়।

উদাহরণ: এন = 10

           1
  1234567890 <-- column indices
 1__________
 2__________
 3__________
 4_ ________
 5__________
 6_  _______
 7__________
 8_ _ ______
 9__ _______
10_ __ _____
 ^ row indices

সূচকগুলি কেবল স্বচ্ছতার জন্য। প্লেইন গ্রিড নিজেই (আপনার প্রোগ্রামটি কী ফলাফল করতে পারে) হ'ল:

__________
__________
__________
_ ________
__________
_  _______
__________
_ _ ______
__ _______
_ __ _____

লক্ষ্য করুন:

  • প্রথম কলামটি সমস্ত আন্ডারস্কোর।
  • দ্বিতীয় কলামটি সারি 2 এর আন্ডারস্কোর ব্যতীত আন্ডারস্কোর স্পেস, আন্ডারস্কোর স্পেস ইত্যাদি যায়।
  • তৃতীয় কলামটি আন্ডারস্কোর আন্ডারস্কোর স্পেস, আন্ডারস্কোর আন্ডারস্কোর স্পেস ইত্যাদিতে যায় row নং সারির আন্ডারস্কোর ব্যতীত।
  • প্রভৃতি

এছাড়াও লক্ষ করুন যে 1 এর পাশাপাশি প্রতিটি স্তম্ভের মধ্যে কেবল প্রাথমিক সংখ্যাযুক্ত সারিগুলির আন্ডারস্কোর রয়েছে।

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

কার্যক্রম

এমন একটি প্রোগ্রাম লিখুন যা স্টিডিন (বা নিকটতম বিকল্প) এর মাধ্যমে এন প্রদত্ত এই গ্রিডগুলি আঁকবে। আউটপুট স্টডআউট (বা নিকটতম বিকল্প) এ যায় এবং কেবলমাত্র optionচ্ছিক ট্রেলিং নিউলাইন সহ ফাঁকা স্থান, আন্ডারস্কোর এবং নিউলাইনগুলি থাকা উচিত।

সংক্ষিপ্ততম কোডটি জয়ী।


এটি কীভাবে প্রধান সংখ্যা নির্ধারণ করে তা আমি পাই না
ফিলিপ বার্তুজি

5
@FilipBartuzi হয়তো খুঁজে বার করো en.wikipedia.org/wiki/Sieve_of_Eratosthenes

"নবম কলামে n - 1 আন্ডারস্কোরগুলির পুনরাবৃত্তি প্যাটার্ন রয়েছে যার পরে একটি স্থান থাকবে" " সুতরাং কলামটি এন = 1 সমস্ত স্থান নয়, সমস্ত আন্ডারস্কোর নয়?
অ্যালগরিদমশর্ক

6
আমার অবশ্যই বলতে হবে যে আমি বিশেষত "কোনও পূর্ববর্তী নিউলাইন" প্রয়োজনীয়তা পছন্দ করি না। এটি কিছু ভাষায় খুব কঠিন, অন্যের পক্ষে একেবারে অসম্ভব এবং এটি কেবল সেই প্রোগ্রামগুলিকেই প্রভাবিত করে যা প্রবন্ধগুলিতে মুদ্রিত হয়।
ডেনিস

4
বর্ণনাটি আমার পক্ষে বোঝা মুশকিল। এইভাবে আমি এটি বর্ণনা করব: এন আন্ডারস্কোরগুলির এন লাইনের গ্রিড দিয়ে শুরু করুন। জন্য nতম লাইন, করতে kতম চরিত্র একটি স্থান যদি kএকটি ভাজক হয় m1 বা না m
কেসি চু

উত্তর:


7

সিজেম, 33 28 27 বাইট

q~,:)_f{f{md\1=+'_S?}0'_tN}

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

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

q~        " Read one line from STDIN and evaluate it.                                     ";
,:)       " For “N”, push [ 1 ... N ].                                                    ";
_         " Push a copy.                                                                  ";
f{        " For each “I in [ 1 ... N ], push “I   [ 1 ... N ]”; then:                     ";
  f{      " For each “J in [ 1 ... N ], push “J   I”; then:                               ";
    md\   " Push “J % I   J / I”.                                                         ";
    1=+   " Calculate “J % I + (J / I == 1)”.                                             ";
    '_S?  " Push an underscore if the result is truthy and a space otherwise.             ";
  }       "                                                                               ";
  0'_t    " Replace the first character of the resulting array by an underscore.          ";
  N       " Push a newline.                                                               ";
}         "                                                                               ";

উদাহরণ রান

$ cjam solid-primes.cjam <<< 10
__________
__________
__________
_ ________
__________
_  _______
__________
_ _ ______
__ _______
_ __ _____
$ cjam solid-primes.cjam <<< 100 | md5sum # trailing newline
e4396b316989813dada21141b569ccf9  -

আমি যখন গল্ফিং করি তখন আমি একটি ব্যাখ্যা পোস্ট করব।
ডেনিস

9
33 বাইট এবং আপনি গল্ফিং সম্পন্ন করেননি ??

5

রুবি, 77 73 টি অক্ষর

puts (1..n=gets.to_i).map{|a|?_+(2..n).map{|b|a!=b&&a%b==0? ' ':?_}.join}

আমি ব্যবহৃত কিছু কৌশল:

  • ..অপারেটর প্রায় রুবি সব অপারেটরের সর্বনিম্ন প্রাধান্য আছে, তাই (1..n=gets.to_i)কাজ করে।

  • a!=1আন্ডারস্কোরের পরিবর্তে অক্ষরটি কোনও স্থান হওয়া উচিত কিনা তা পরীক্ষা করার সময় অতিরিক্ত শর্ত যুক্ত করার পরিবর্তে (যেহেতু প্রথম সারিটি সমস্ত আন্ডারস্কোর), আমি সবেমাত্র সীমাটি শুরু করেছি 2এবং একটি অতিরিক্ত চাপ দিয়েছি ?_

  • লাইন এ লাইন বিতে পরিণত হতে পারে:

    A | a%b==0&&a!=b ? ' ':?_
    B | a!=b&&a%b==0? ' ':?_
    

    কারণ আমার লাইনের A এর মধ্যে bএবং ?লাইনে একটি অতিরিক্ত জায়গা থাকতে হবে , তবে এটি লাইনের বি 0এবং এর ?মধ্যে দরকার b?নেই একটি বৈধ রুবি পদ্ধতি, তবে 0?তা নয়।

  • putsঅতিরিক্তের প্রয়োজনীয়তা অপসারণ করে স্বয়ংক্রিয়ভাবে আপনার জন্য নতুন লাইনের সাথে অ্যারেগুলিতে যোগদান করবে *"\n"

এর জন্য আউটপুট n=100:

____________________________________________________________________________________________________
____________________________________________________________________________________________________
____________________________________________________________________________________________________
_ __________________________________________________________________________________________________
____________________________________________________________________________________________________
_  _________________________________________________________________________________________________
____________________________________________________________________________________________________
_ _ ________________________________________________________________________________________________
__ _________________________________________________________________________________________________
_ __ _______________________________________________________________________________________________
____________________________________________________________________________________________________
_   _ ______________________________________________________________________________________________
____________________________________________________________________________________________________
_ ____ _____________________________________________________________________________________________
__ _ _______________________________________________________________________________________________
_ _ ___ ____________________________________________________________________________________________
____________________________________________________________________________________________________
_  __ __ ___________________________________________________________________________________________
____________________________________________________________________________________________________
_ _  ____ __________________________________________________________________________________________
__ ___ _____________________________________________________________________________________________
_ ________ _________________________________________________________________________________________
____________________________________________________________________________________________________
_   _ _ ___ ________________________________________________________________________________________
____ _______________________________________________________________________________________________
_ __________ _______________________________________________________________________________________
__ _____ ___________________________________________________________________________________________
_ _ __ ______ ______________________________________________________________________________________
____________________________________________________________________________________________________
_  _  ___ ____ _____________________________________________________________________________________
____________________________________________________________________________________________________
_ _ ___ _______ ____________________________________________________________________________________
__ _______ _________________________________________________________________________________________
_ ______________ ___________________________________________________________________________________
____ _ _____________________________________________________________________________________________
_   _ __ __ _____ __________________________________________________________________________________
____________________________________________________________________________________________________
_ ________________ _________________________________________________________________________________
__ _________ _______________________________________________________________________________________
_ _  __ _ _________ ________________________________________________________________________________
____________________________________________________________________________________________________
_  __  ______ ______ _______________________________________________________________________________
____________________________________________________________________________________________________
_ _ ______ __________ ______________________________________________________________________________
__ _ ___ _____ _____________________________________________________________________________________
_ ____________________ _____________________________________________________________________________
____________________________________________________________________________________________________
_   _ _ ___ ___ _______ ____________________________________________________________________________
______ _____________________________________________________________________________________________
_ __ ____ ______________ ___________________________________________________________________________
__ _____________ ___________________________________________________________________________________
_ _ ________ ____________ __________________________________________________________________________
____________________________________________________________________________________________________
_  __ __ ________ ________ _________________________________________________________________________
____ _____ _________________________________________________________________________________________
_ _ __  _____ _____________ ________________________________________________________________________
__ _______________ _________________________________________________________________________________
_ __________________________ _______________________________________________________________________
____________________________________________________________________________________________________
_     ___ _ __ ____ _________ ______________________________________________________________________
____________________________________________________________________________________________________
_ ____________________________ _____________________________________________________________________
__ ___ _ ___________ _______________________________________________________________________________
_ _ ___ _______ _______________ ____________________________________________________________________
____ _______ _______________________________________________________________________________________
_  __ ____ __________ __________ ___________________________________________________________________
____________________________________________________________________________________________________
_ _ ____________ ________________ __________________________________________________________________
__ ___________________ _____________________________________________________________________________
_ __ _ __ ___ ____________________ _________________________________________________________________
____________________________________________________________________________________________________
_   _ _  __ _____ _____ ___________ ________________________________________________________________
____________________________________________________________________________________________________
_ __________________________________ _______________________________________________________________
__ _ _________ _________ ___________________________________________________________________________
_ _ ______________ __________________ ______________________________________________________________
______ ___ _________________________________________________________________________________________
_  __ ______ ____________ ____________ _____________________________________________________________
____________________________________________________________________________________________________
_ _  __ _ _____ ___ ___________________ ____________________________________________________________
__ _____ _________________ _________________________________________________________________________
_ ______________________________________ ___________________________________________________________
____________________________________________________________________________________________________
_   _  ____ _ ______ ______ _____________ __________________________________________________________
____ ___________ ___________________________________________________________________________________
_ ________________________________________ _________________________________________________________
__ _________________________ _______________________________________________________________________
_ _ ___ __ __________ _____________________ ________________________________________________________
____________________________________________________________________________________________________
_  _  __  ____ __ ___________ ______________ _______________________________________________________
______ _____ _______________________________________________________________________________________
_ _ __________________ ______________________ ______________________________________________________
__ ___________________________ _____________________________________________________________________
_ ____________________________________________ _____________________________________________________
____ _____________ _________________________________________________________________________________
_   _ _ ___ ___ _______ _______ _______________ ____________________________________________________
____________________________________________________________________________________________________
_ ____ ______ __________________________________ ___________________________________________________
__ _____ _ _____________________ ___________________________________________________________________
_ _  ____ _________ ____ ________________________ __________________________________________________

এখন অতিরিক্ত-বিশেষ ™ মেগা-রঙিন লাল © হাইলাইট-যাদু including tend বর্ধিত সংস্করণ including সহ: (প্রসারিত করতে থাম্বনেইল ক্লিক করুন)

রঙের সাথে রুবি, ১১০ টি অক্ষর

puts (1..n=gets.to_i).map{|a|x=(2..n).map{|b|a!=b&&a%b==0? ' ':?_}.join;x.index(' ')??_+x :"\e[41m_#{x}\e[0m"}

বর্ধিত সংস্করণ


1
দেখে মনে হচ্ছে এটি ফ্র্যাক্টাল হওয়া উচিত ...
বিটা ডিকায়

এর আগে ত্রিনিয়ারের মধ্যে স্থানটি সরান ' '। এটি সম্ভবত আপনার সিনট্যাক্স হাইলাইটারকে গণ্ডগোল করে তবে এটি এখনও সঠিকভাবে কাজ করে। এছাড়াও,a%b<1
মূল্য কালি

*''যোগদান হিসাবে একই কাজ করবে, এবং এর a<bপরিবর্তে আপনি পরীক্ষা করতে পারেন a!=bযেহেতু কোনওটির কোনও গুণক এর চেয়ে বড় নয় greater টেনারি ব্যবহারের পরিবর্তে a এবং b এর উপর কিছু গণিতের ফলাফল সহ একটি দ্বি-চরিত্রের স্ট্রিংয়ের টুকরো টুকরো টুকরো টুকরো টুকরো থেকে রক্ষা পাওয়া যায়।
হিস্টোক্র্যাট

5

জে - 28 চর

1('_ '{~0==+&|:1&=+|/~)@:+i.

বিস্ফোরণ দ্বারা ব্যাখ্যা:

1(                    )@:+i.  NB. on vector 1..n, do
                   |/~        NB. take the table "column modulo row"
               1&=+           NB. add 1 to column 1
          =                   NB. identity matrix of size 10
            &|:               NB. transpose both tables (now table is row mod col)
           +                  NB. add them
  '_ '{~0=                    NB. space if cell=0 else underscore

এটা কিসের মত দেখতে:

   1('_ '{~0==+&|:1&=+|/~)@:+i.25
_________________________
_________________________
_________________________
_ _______________________
_________________________
_  ______________________
_________________________
_ _ _____________________
__ ______________________
_ __ ____________________
_________________________
_   _ ___________________
_________________________
_ ____ __________________
__ _ ____________________
_ _ ___ _________________
_________________________
_  __ __ ________________
_________________________
_ _  ____ _______________
__ ___ __________________
_ ________ ______________
_________________________
_   _ _ ___ _____________
____ ____________________

4

পাইথন 2, 76 71

r=range(1,input()+1)
for i in r:print''.join("_ "[i%j<1<j<i]for j in r)

এটা ... এই কীওয়ার্ডগুলি এই তুলনায় কোনো খাটো পেতে পারেন যদি নিশ্চিত না: range, inputএবং printবেশ অনেক টাকা লাগে।


3
আপনি প্রতিস্থাপন করতে পারেন i>j>1and i%j<1সঙ্গেi>j>1>i%j
seequ

@ সিগ: শীতল! এটি আসলে আমার প্রথমবারের মতো এই তুলনামূলক তুলনাগুলি শোষণ করে।
ফালকো

আমি: - i%j<1<j<iপি সহ বিভিন্ন নাম পর্যন্ত অক্ষরের জন্য এই সঠিক কোডের চরিত্রটি লিখেছিলাম । সুতরাং এটি সত্যিই কোনও ছোট হয় না।
xnor

আসলে, আমি মনে করি (পরীক্ষিত নয়) আপনি করতে পারেন i%j<1। ইঙ্গিত i>=j

@ সিগ: হ্যাঁ, তবে আমাদের দরকার i>j, i>=jত্রিভুজটি ফাঁকা এড়ানো উচিত নয় ।
ফালকো

3

এপিএল (২৮)

'_ '[(1+(1≠⊢)∧≠∧0=|⍨)/¨⍳2⍴⎕]

ব্যাখ্যা:

  • ⍳2⍴⎕: একটি নম্বর এন পড়ুন এবং একটি এন বাই বাই এন সমন্বিত ম্যাট্রিক্স তৈরি করুন
  • (... )/¨: প্রতিটি জোড় স্থানাঙ্কের জন্য, নিম্নলিখিত ফাংশনটি প্রয়োগ করুন:
    • একটি ঘরে অবশ্যই একটি স্থান থাকতে পারে যদি:
    • 0=|⍨: y modx = 0, এবং
    • : x y এর সমান নয়, এবং
    • 1≠⊢: এক্স না 1
    • 1+: 1ফলাফল বিট ম্যাট্রিক্স যুক্ত করুন কারণ এপিএল অ্যারেগুলি 1 থেকে শুরু হয়।
  • '_ '[... ]: প্রত্যেককে 1একটি আন্ডারস্কোর এবং 2একটি স্পেস দিয়ে প্রতিস্থাপন করুন ।

দৃশ্যত 28 এখানে যাদু গল্ফিং নম্বর।

2

পার্ল,    69   61

আপডেট সংস্করণ (ধন্যবাদ, ডেনিস !)

$n=<>;for$i(1..$n){say"_".join"",map{$i%$_|$i==$_?_:$"}2..$n}

মূল সংস্করণ:

$n=<>;for$i(1..$n){say"_".join("",map{$i%$_||$i==$_?"_":" "}(2..$n))}

1
১.কেন্দ্রিক প্রয়োজন joinবা 2..$nপ্রয়োজন নেই parent 2. -nস্যুইচ দিয়ে, আপনি $_পরিবর্তে ব্যবহার করতে পারেন $n। ৩. _একটি বৈধ খালি শব্দ, সুতরাং এর উদ্ধৃতিগুলির প্রয়োজন নেই। 4. আপনি $"পরিবর্তে ব্যবহার করতে পারেন " "। 5. আপনি | পরিবর্তে ব্যবহার করতে পারেন ||
ডেনিস

@ ডেনিস - ধন্যবাদ! আমি তাদের কয়েকটি প্রয়োগ করেছি। আমি -nজিনিসটি করিনি কারণ আমি এটিকে একটি স্বনির্ভর প্রোগ্রাম রাখতে চেয়েছিলাম এবং বলার দরকার নেই $^N=1_খালি শব্দ হিসাবে ব্যবহারের ক্ষেত্রে $i==_কাজ হয়েছে তবে ক্ষেত্রে কাজ হয়নি $i%_কারণ পার্সার ধারণাটি %_একটি হ্যাশ ছিল।
টড লেহম্যান

1
1. আপনি এটি একটি শেবাং ( #!/bin/perl -nসাধারণত 1 বাইট হিসাবে গণ্য করা হয়) দিয়ে স্ব-অন্তর্ভুক্ত রাখতে পারেন , তবে এটি অবশ্যই আপনার উপর নির্ভর করে। আমার কী ধারণা $^N=1নেই ... 2. $i==_সঠিকভাবে কাজ করবে না; এটি পরীক্ষা করা হবে যদি $i == "_"। আমি যা বোঝাতে চাইছি তা হ'ল _পরিবর্তে "_", অর্থাৎ, say _এবং ব্যবহার করা $i==$_?_:$"
ডেনিস

@ ডেনিস - ওহ্হ্হহহহহহহহহহহহহহহহহহহহহহহشنয়েমূথেকে কথা বললাম, আপনি ঠিক বলেছেন। আমি যে সম্পাদনা করেছি তা ম্যাট্রিক্সের মাধ্যমে একটি তির্যক রেখা প্রবর্তন করেছে। এটা না ধরার জন্য আমার লজ্জা। সংশোধন করা হয়েছে। আপনি এখন _= সম্পর্কে কি বোঝাতে চাইছেন তা আমি দেখতে পাচ্ছি "_"। দুর্ভাগ্যক্রমে, এটি পরবর্তী ক্ষেত্রে কাজ করে তবে এর পরে আমাকে একটি ত্রুটি দেয় sayকারণ এটি মনে হয় এটি ফাইল হ্যান্ডেল।
টড লেহম্যান

2

সিজেম, 27 বাইট

q~:I,{__I?'_*S+I*I<'_t}%zN*

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

এই পদ্ধতিটি আমার অন্যান্য উত্তর হিসাবে একই বাইট গণনা অর্জন করে, তবে আমি ভেবেছিলাম এটি যাইহোক পোস্ট করা উপযুক্ত। প্রতিটি সারিতে যথাযথ গুণকগুলি চিহ্নিত করার পরিবর্তে স্পেসিফিকেশন যা বলে তা ঠিক তাই করে।

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

q~:I                         " Read an integer I from STDIN.                              ";
    ,{                }%     " For each J ∊ {1,...,I}:                                    ";
          '_*S+              " Push J - 1 underscores followed by a space.                ";
               I*I<          " Repeat the pattern to complete I characters.               ";
       _I?                   " For the first row, replace all spaces with underscores.    ";
      _            '_t       " Replace the Jth character by an underscore.                ";
                        zN*  " Transpose rows and columns; separate with linefeeds.       ";

উদাহরণ রান

$ cjam prime-lines.cjam <<< 10; echo
__________
__________
__________
_ ________
__________
_  _______
__________
_ _ ______
__ _______
_ __ _____
$ cjam prime-lines.cjam <<< 100 | md5sum # no trailing newline
83c7b974e1510f482322456a9dbb461f  -

1

সি, 143

সি অবশ্যই এর জন্য ভাষার সঠিক পছন্দ নয়। তবে সম্পূর্ণতার জন্য, সি তে এটি করার একটি সম্ভাব্য উপায় এখানে 1048575 পর্যন্ত এন এর মানগুলির জন্য কাজ করে standard স্ট্যান্ডার্ড ইনপুট থেকে এন পড়ে।

#include <stdio.h>
main(){int n,i=0,j;scanf("%d",&n);char x[1<<20];x[n+1]=0;
for(;++i<=n;){for(j=0;++j<=n;)x[j]=i%j|i==j|j==1?95:32;puts(x+1);}}

তবে এটি খুব দ্রুত।

  • N = 1,000,000 (যা একটি 1,000,000,000,000-উপাদান গ্রিড উত্পাদন করে) এর রানটাইম আমার সিস্টেমে আনুমানিক 55 মিনিট।

  • এন = 1000 এর রানটাইম (যা 1,000,000-উপাদান গ্রিডকে উত্সাহ দেয়) 1/100 সেকেন্ডের চেয়ে কম হয়।


4
১. কিছু সংকলক (যেমন, জিসিসি) এর জন্য অন্তর্ভুক্তের দরকার নেই, তাই আপনি এটিকে সরাতে পারেন। ২. গ্লোবাল ভেরিয়েবলগুলি 0 থেকে আরম্ভ করতে ডিফল্ট হয় int, যাতে আপনি ব্যবহার করতে পারেন char x[1<<20];n,i,j;main...। 3. for(scanf("%d",&n);i++<n;)দুটি বাইট ওভার সাশ্রয় scanf("%d",&n);for(;++i<=n;)
ডেনিস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.