পাটিগণিত-সারণীর পূর্ণসংখ্যার সংখ্যা s


17

চ্যালেঞ্জ:

ইনপুটটির উপর ভিত্তি করে নিম্নলিখিত ছয়টি পাটিগণিত-সারণীর একটিতে 'পূর্ণসংখ্যার অঙ্কগুলি' আউটপুট করুন:
- সংযোজন ( +);
- বিয়োগ ( -);
- গুণ ( *);
- বিভাগ ( /);
- ক্ষয়ক্ষতি (^ );
- মডুলো অপারেশন ( %)।

নিয়মাবলী:

  • গাণিতিক প্রতীক যা ঠিক নিম্নলিখিত এক প্রতিটি ফলাফল:: আমি হিসাবে 'পূর্ণসংখ্যা-সংখ্যা কি সংজ্ঞায়িত করবেন 0, 1, 2, 3, 4, 5, 6, 7, 8, 9। এর অর্থ আপনি প্রতিটি বা তারও বেশি ফলাফল, প্রতিটি ফলাফল বা নিম্নের এবং প্রতিটি অ-পূর্ণসংখ্যার ফলাফলকে বাদ দেন10-1
  • আমরা পাটিগণিতের ফলাফলগুলি কীভাবে গণনা করব: প্রথমে শীর্ষ সংখ্যাটি ব্যবহার করে এবং তারপরে বাম অঙ্ক সহ অপারেন্ডটি ব্যবহার করুন। যতক্ষণ আপনি আউটপুটগুলির সমস্ত ছয়টির জন্য সামঞ্জস্য হন ততক্ষণ আপনি এই তদ্বিপরীত (যেমন y/xপরিবর্তে x/y) করার অনুমতি পাচ্ছেন! (সুতরাং আপনাকে ব্যবহার করার অনুমতি নেই y-xএবংx/y একই উত্তর ))
  • আমরা 0 টি পরীক্ষার কেস দ্বারা বিভাজনের জন্য কিছুই আউটপুট দেব না (বিভাগ এবং মডুলো অপারেশন টেবিলের জন্য)
  • আমরা এজ-কেসের জন্য কিছু আউটপুট দেব না 0^0

আউটপুট:

সুতরাং নিম্নলিখিতটি আউটপুট করুন (টেবিল বিন্যাসটি কিছুটা নমনীয় (নীচে দেখুন): সুতরাং লাইনগুলি alচ্ছিক এবং মূলত পরীক্ষার কেসগুলির পাঠযোগ্যতার জন্য যুক্ত করা হয়েছে):

সংযোজন:

+ | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 | 0 1 2 3 4 5 6 7 8 9
1 | 1 2 3 4 5 6 7 8 9
2 | 2 3 4 5 6 7 8 9
3 | 3 4 5 6 7 8 9
4 | 4 5 6 7 8 9
5 | 5 6 7 8 9
6 | 6 7 8 9
7 | 7 8 9
8 | 8 9
9 | 9

বিয়োগ:

- | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 | 0 1 2 3 4 5 6 7 8 9
1 |   0 1 2 3 4 5 6 7 8
2 |     0 1 2 3 4 5 6 7
3 |       0 1 2 3 4 5 6
4 |         0 1 2 3 4 5
5 |           0 1 2 3 4
6 |             0 1 2 3
7 |               0 1 2
8 |                 0 1
9 |                   0

গুণ:

* | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 | 0 0 0 0 0 0 0 0 0 0
1 | 0 1 2 3 4 5 6 7 8 9
2 | 0 2 4 6 8
3 | 0 3 6 9
4 | 0 4 8
5 | 0 5
6 | 0 6
7 | 0 7
8 | 0 8
9 | 0 9

বিভাগ:

/ | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 | 
1 | 0 1 2 3 4 5 6 7 8 9
2 | 0   1   2   3   4
3 | 0     1     2     3
4 | 0       1       2
5 | 0         1
6 | 0           1
7 | 0             1
8 | 0               1
9 | 0                 1

Exponentiation:

^ | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 |   1 1 1 1 1 1 1 1 1
1 | 0 1 2 3 4 5 6 7 8 9
2 | 0 1 4 9
3 | 0 1 8
4 | 0 1
5 | 0 1
6 | 0 1
7 | 0 1
8 | 0 1
9 | 0 1

মডুলো:

% | 0 1 2 3 4 5 6 7 8 9
-----------------------
0 | 
1 | 0 0 0 0 0 0 0 0 0 0
2 | 0 1 0 1 0 1 0 1 0 1
3 | 0 1 2 0 1 2 0 1 2 0
4 | 0 1 2 3 0 1 2 3 0 1
5 | 0 1 2 3 4 0 1 2 3 4
6 | 0 1 2 3 4 5 0 1 2 3
7 | 0 1 2 3 4 5 6 0 1 2
8 | 0 1 2 3 4 5 6 7 0 1
9 | 0 1 2 3 4 5 6 7 8 0

চ্যালেঞ্জ বিধি:

  • ট্রেলিং করা নতুন লাইনগুলি এবং পিছনের স্থানগুলি alচ্ছিক
  • পরীক্ষার ক্ষেত্রে অনুভূমিক এবং উল্লম্ব লাইনগুলি alচ্ছিক। আমি কেবল তাদের আরও ভাল পাঠযোগ্যতার জন্য যুক্ত করেছি।
  • প্রতিটি ফলাফলের মধ্যে ফাঁকা স্থানগুলি alচ্ছিক নয়।
  • পাটিগণিতের প্রতীকটি আলাদা হতে পারে, যতক্ষণ না এটি পরিষ্কার কোনটি। অর্থাত্ ×বা ·পরিবর্তে *গুণফলের জন্য; ÷পরিবর্তে /বিভাগের জন্য; ইত্যাদি
    এবং যতক্ষণ না এটি একটি একক চরিত্র, তাই দুঃখিত পাইথনের **
  • ইনপুট ফর্ম্যাটটি নমনীয়। সংশ্লিষ্ট ছয় টেবিলের জন্য আপনি 0-5 বা 1-6 থেকে একটি সূচক চয়ন করতে পারেন; আপনি অপেরাড-প্রতীক ইনপুট করতে পারেন; ইত্যাদি (ফলাফলের মধ্যে আপনি যা প্রদর্শন করেন তার বিপরীতে, আপনাকে সম্পূর্ণ স্ট্রিংগুলি বা **পাইথনের ক্ষেত্রে ইনপুট দেওয়ার অনুমতি দেওয়া হয় ))
    আপনার উত্তরে আপনি কোন ইনপুট-ফর্ম্যাটটি ব্যবহার করছেন তা নিশ্চিত করেই নিশ্চিত করুন!

সাধারণ নিয়ম:

  • এটি , তাই বাইট জেতে সংক্ষিপ্ত উত্তর।
    কোড-গল্ফ ভাষাগুলি আপনাকে নন-কোডগলফিং ভাষার সাথে উত্তর পোস্ট করতে নিরুৎসাহিত করবেন না। 'যে কোনও' প্রোগ্রামিং ভাষার জন্য যতটা সম্ভব সংক্ষিপ্ত উত্তর নিয়ে আসার চেষ্টা করুন।
  • স্ট্যান্ডার্ড বিধি প্রয়োগ আপনার উত্তরের জন্য , সুতরাং আপনাকে সঠিক পরামিতিগুলি, সম্পূর্ণ প্রোগ্রামগুলির সাথে STDIN / STDOUT, ফাংশন / পদ্ধতি ব্যবহারের অনুমতি দেওয়া হবে। আপনার কল
  • ডিফল্ট লুফোলগুলি নিষিদ্ধ।
  • যদি সম্ভব হয় তবে আপনার কোডের জন্য একটি পরীক্ষার সাথে একটি লিঙ্ক যুক্ত করুন।
  • এছাড়াও, প্রয়োজন হলে একটি ব্যাখ্যা যোগ করুন।

Horiz অনুভূমিক এবং উল্লম্ব রেখা ছাড়াই বৈধ আউটপুট উদাহরণ, ÷প্রতীক হিসাবে এবং এর y/xপরিবর্তে ব্যবহার করে x/y:

÷ 0 1 2 3 4 5 6 7 8 9
0   0 0 0 0 0 0 0 0 0
1   1
2   2 1
3   3   1
4   4 2   1
5   5       1
6   6 3 2     1
7   7           1
8   8 4   2       1
9   9   3           1

যদি আমাদের ভাষায় ফলাফল হয় তবে শূন্য দ্বারা বিভাজনের জন্য কোনও ফলাফল দেওয়া ঠিক আছে? যেমন এপিএলে, 0 ÷ 0 ডিফল্টরূপে 1 হয়, এবং এন মোড -0 এন হয়? যে কোনও আলাদা স্কিমও বেছে নিতে পারে যেখানে শূন্য দ্বারা বিভাগ সর্বদা শূন্য থাকে।
অ্যাডম

আমরা কি কলামগুলির মধ্যে একের বেশি স্থানের অনুমতি পাচ্ছি?
অ্যাডম

@ অ্যাডম সর্বশেষ প্রতিক্রিয়ার জন্য দুঃখিত। আপনার প্রথম প্রশ্ন হিসাবে: দুঃখিত। আমি কিছু ভাষা মুদ্রণ জানি 1, অন্যান্য 0, অন্যদের কিছু 0^0বা বিভাজন / মোড 0 এর জন্য, তবে আপনাকে এটিকে কাজ করতে হবে। আপনার দ্বিতীয় প্রশ্ন হিসাবে: হ্যাঁ নিশ্চিত, অঙ্কগুলি এখনও একই কলাম / সারিগুলিতে থাকবে আপনি যতটা স্পেস ব্যবহার করতে পারেন।
কেভিন ক্রুইজসেন 7

অযৌক্তিক ক্রিয়াকলাপের জন্য কি যুক্তির ক্রমটি গুরুত্বপূর্ণ?
অ্যাডম

@ আদম সুতরাং আপনি এর অর্থ আপনি আউটপুট গ্রিড হবে y-x, y/x, y^xএবং y%xপরিবর্তে x-y, x/y, x^yএবং x%y? হুম, আমার ধারণা ঠিক আছে fine আমি উত্তরে এটি সম্পাদনা করব; যতক্ষণ না আপনি তাদের ছয়টির জন্য সামঞ্জস্য বজায় রাখবেন (তাই না y-xএবং x/yএকই উত্তরে)।
কেভিন ক্রুইজসেন

উত্তর:


7

জাপট , 45 বাইট

@ETH প্রোডাকশনগুলির সাথে সহযোগিতা করেছেন

AÆAÇU¥'p«Z«XªOvZ+U+X)+P r"..+"SÃuXÃuAo uU)m¸·

এটি অনলাইন চালান!

ইনপুট হিসাবে নেয়:

"+" সংযোজন জন্য

"-" বিয়োগের জন্য

"*" গুণনের জন্য

"/" বিভাগের জন্য

"p" ক্ষয়ক্ষতির জন্য

"%" মডুলোর জন্য

ব্যাখ্যা (প্রসারিত শর্টকাট সহ):

AÆ  AÇ  U¥ 'p«  Z«  Xª OvZ+U+X)+P r"..+"SÃ uXÃ uAo uU)m¸  ·
AoX{AoZ{U=='p&&!Z&&!X||OvZ+U+X)+P r"..+"S} uX} uAo uU)mqS qR

A                                                             // By default, 10 is assigned to A
 o                                                            // Create a range from [0...9]
  X{                                         }                // Iterate through the range, X becomes the iterative item
    Ao                                                        //   Create another range [0...9]
      Z{                                 }                    //   Iterate through the range, Z becomes the iterative item
                                                              //     Take:
        U=='p                                                 //       U (input) =="p"
             &&!Z                                             //       && Z != 0
                 &&!X                                         //       && X != 0
                     ||                                       //     If any of these turned out false, instead take
                       Ov                                     //       Japt Eval:
                         Z+U+X                                //         Z{Input}X
                              )+P                             //     Whichever it was, convert to a string
                                  r"..+"S                     //     Replace all strings of length 2 or more with " "
                                                              //     (this makes sure the result !== "false" and has length 1)
                                           uX                 //   Insert X (the row number) into the front of the row
                                               u              // Insert at the beginning the first row:
                                                Ao            //   [0...9]
                                                   uU)        //   with the input inserted at the beginning
                                                      mqS     // Join each item in the final array with " "
                                                          qR  // Join the final array with "\n"

8

জাভাস্ক্রিপ্ট (ES7), 128 বাইট

f=
c=>[...c+`0123456789`].map((r,_,a)=>a.map(l=>l==c?r:r==c?l:/^\d$/.test(l=c<`^`?eval(l+c+r):l|c?l**r:l/r)?l:` `).join` `).join`
`
<select onchange=o.textContent=f(this.value)><option>><option>+<option>-<option>*<option>/<option>%<option>^<option>&<option>,<option>.</select><pre id=o>

বিশেষ কেসিংয়ের 0^0জন্য আমার 8 বাইট খরচ হয়।


আপনি কীভাবে আপনার পরীক্ষার স্নিপেটে ওআর এবং এন্ডের মতো অতিরিক্ত অপারেশন যুক্ত করেছেন তা খুব শীতল। +1
কেভিন ক্রুইজসেন

@ কেভিন ক্রুইজসেন আমাকে বাইট বাঁচাতে বা অপসারণ করতে হয়েছিল (অন্য সমস্ত অপারেটর পূর্বে বাছাই করেছেন ^), তবে ধন্যবাদ!
নীল

5

অপারেশন ফ্ল্যাশপয়েন্ট স্ক্রিপ্টিং ভাষা, 343 333 303 301 বাইট

f={o=_this;s=o+" 0 1 2 3 4 5 6 7 8 9\n";i=0;while{i<10}do{j=0;s=s+format["%1",i];if(i<1&&(o=="/"||o=="%"||o=="^"))then{if(o=="^")then{if(j<1)then{s=s+"  ";j=1}}else{s=s+"\n1";i=1}};while{j<10}do{r=call format["%1%2%3",j,o,i];if(r>9||r<0||r%1>0)then{r=" "};s=s+format[" %1",r];j=j+1};s=s+"\n";i=i+1};s}

সাথে কল করুন:

hint ("+" call f)

Ungolfed:

f=
{
    o=_this;
    s=o+" 0 1 2 3 4 5 6 7 8 9\n";
    i=0;
    while{i<10}do
    {
        j=0;
        s=s+format["%1",i];
        if(i<1&&(o=="/"||o=="%"||o=="^"))then
        {
            if(o=="^")then{if(j<1)then{s=s+"  ";j=1}}
            else{s=s+"\n1";i=1}
        };
        while{j<10}do
        {
            r=call format["%1%2%3",j,o,i];
            if(r>9||r<0||r%1>0)then{r=" "};
            s=s+format[" %1",r];
            j=j+1
        };
        s=s+"\n";
        i=i+1
    };
    s
}

আউটপুট:

অপারেটর +

অপারেটর -

অপারেটর *

অপারেটর /

অপারেটর ^

অপারেটর %


5

পাইথন 2 , 240 231 226 224 203 202 200 197 বাইট

a=i=input()
R=range(10)
for z in R:a+=' '+`z`
print a
for x in R:
 try:
	d=`x`
	for b in R:c=eval("b%s(x*1.)"%('**',i)[i<'^']);d+=' '+(' ',`int(c)`)[(i<'^'or x+b>0)and c in R]
 except:pass
 print d

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

"+", "-", "*", "/", "^" বা "%" এর মধ্যে একটি হিসাবে ইনপুট নেয়।

সম্পাদনাগুলি

-ফিলিপনার্দিবাটিস্টাকে কিছু দুর্দান্ত ইঙ্গিত দেওয়ার জন্য ধন্যবাদ দিয়ে -9 -16

@ ফিলিপনার্ডিবাটিস্টা থেকে আরও সহায়তার সাথে নীচে 221 এ এবং তারপরে হেরে 203 এ চলে যান and E(c)==int(E(c))। আমরা যদি E(c)এটি যাচাই করে থাকি range(10)তবে এটি সেখানে থাকলে সর্বদা পূর্ণসংখ্যা হবে। সদৃশ চেকের দরকার নেই।

এই হয়েছে পাইথন 3 স্যুইচ এবং প্রকাশক ছাড়া 200 নিচে যেতে P=print। কোন ধারনা? আমি সবসময় শিখতে খুশি।

Yesss! আমি জানতাম এটি করা যেতে পারে। 197. বিছানার জন্য এখন সময়। আমি এটির জন্য যথেষ্ট সময় ব্যয় করেছি। কেভিন ক্রুজসেন আকর্ষণীয় চ্যালেঞ্জের জন্য ধন্যবাদ।


1
('**',i)[i<'^']এবং (i<'^'or x>0 or b>0)4 বাইট সংরক্ষণ করে
ফিলিপ নারদী বাটিস্তা

1
a=i=input()সঙ্গে for z in R:a+=' '+`z`কিছু অতিরিক্ত বনাম সংরক্ষিত বাইটa=i+' 0 1 2 3 4 5 6 7 8 9'
ফিলিপ Nardi বাতিস্তা

1
1.2 বাইটের জন্য বনাম 1.0এবং E(c)in Rবনাম-1<E(c)<10
ফিলিপ নারদী বাটিস্তা

1
x+b>0বনাম x>0 or b>0এবং "b%s(x*1.)"%('**',i)[i<'^']বনাম"b"+('**',i)[i<'^']+"(x*1.)"
ফিলিপ নারদী বাটিস্তা

1
সেখানে অতিরিক্ত বন্ধ এক সেট হয় (, )আপনার জন্য যোগ দিতে 223 বাইটে
ফিলিপ Nardi বাতিস্তা

4

গণিত, 150 বাইট

r=0~Range~9;p=Prepend;±i_:=Grid@p[p[If[0<=#<=9,#]/._@__->""&/@<|Thread[Characters@"+-*/^%"->{Plus,#-#2&,1##&,#/#2&,Power,Mod}]|>[i][r,#],#]&/@r,r~p~i]

একটি আনারি ফাংশনকে ±এর অক্ষরগুলির একটিটিকে +-*/^%তার ইনপুট হিসাবে গ্রহণ করে i(উদাহরণস্বরূপ ±"^"), এবং একটি প্রদান করে DefGrid এমন বস্তু যা ওপিতে শেষ আউটপুটটির মতো দেখায়।

<|Thread[Characters@"+-*/^%"->{Plus,#-#2&,1##&,#/#2&,Power,Mod}]|>সহযোগী, প্রতিটি সম্ভাব্য ইনপুট চরিত্রের সাথে সম্পর্কিত (তালিকাভুক্ত) বাইনারি ফাংশন (যেখানে #-#2&,1##&,#/#2&এর গল্ফ সংস্করণ রয়েছে Subtract,Times,Divide); সুতরাং <|...|>[i][r,#]সমস্ত সম্ভাব্য প্রথম যুক্তি এবং #দ্বিতীয় আর্গুমেন্ট হিসাবে বাইনারি অপারেশন গণনা করে । If[0<=#<=9,#]/._@__->""&প্রতিটি ফলাফলকে একটিতে রূপান্তর করে Nullবা ""যদি এটি একক-অঙ্কের ফলাফল না হয় ( /._@__->""প্রয়োজনীয় কারণ কিছু ফলাফল 1/0অসমতা দ্বারা প্রক্রিয়াজাত করা যায় না 0<=#<=9)। অবশেষে, আমরা বিভিন্ন শিরোনাম এবং পাদচরণগুলি আগে থেকেই প্রস্তুত করি এবং উত্তরটি প্রদর্শন করি।


সুন্দর উত্তর এবং ব্যাখ্যা। আপনার কাছে সম্ভবত একটি চেষ্টা করে দেখুন-লিংকটি রয়েছে? এবং একটি প্রশ্ন / নোট, আমি প্রান্ত-কেস রুলের কোনও উল্লেখ দেখতে পাচ্ছি না: " আমরা এজ-কেসের জন্য কিছু আউটপুট দেব না 0^0 " ম্যাথমেটিকাকে এই প্রান্ত-মামলার জন্য ডিফল্টরূপে কিছুই পাওয়া যায় না?
কেভিন ক্রুইজসেন

1
আমি উপরে একটি লিঙ্ক যুক্ত করেছি। গণিতিকা মূল্যায়ন 0^0করে Indeterminate, যা আমাদের একটি অসুখী অবমূল্যায়ন ফলাফল If[0<=Indeterminate<=9, Indeterminate]মিড-গণনা দেয়; তবে /._@__->""এটি এমন একটি নিয়ম যা কোনও অমূল্য ফাংশন এবং তার যুক্তিগুলি গ্রহণ করে এবং এটিকে অদৃশ্য স্ট্রিংয়ে পরিবর্তন করে।
গ্রেগ মার্টিন

আহ ঠিক আছে, সুতরাং গাণিতিক সঠিকভাবে ফেরত দেয় যে দুটি বিবাদ বিধি #^0=1এবং 0^#= 0` এর জন্য ঘটছে 0^0। এখনই ভাল, এবং এই চ্যালেঞ্জের জন্য সুবিধাজনক। :) বিটিডব্লিউ, আপনার লিঙ্কটি কাজ করছে বলে মনে হচ্ছে না। আমি একটি ত্রুটি পেয়েছি যে এটিতে অ্যাক্সেস করার আমার কোনও অনুমতি নেই।
কেভিন ক্রুইজসেন

ঠিক আছে, আপনাকে স্যান্ডবক্স.ওপেন.ওয়াল্ফ্রামক্লাউড.কম এ গিয়ে কোডটি নিজের মধ্যে আটকে দিতে হবে, তারপরে এটিকে একটি কমান্ড দিয়ে কল করতে হবে ±"^"
গ্রেগ মার্টিন

4

পাইথন 3, 343 335 363 362 বাইট

এ সম্পর্কে সবচেয়ে দুঃখের বিষয় হ'ল একটি জাভা উত্তর আমাকে মারছে ... আমি সকালে আরও গল্ফ করব।

o=input()
r=range(10)
g=[['']*10 for i in r]
for x in r:
 for y in r:exec('if"/"!=o and(o!="%"or x)and(o!="**"or x or y):k=str(y'+o+'x);g[x][y]=k')
if'/'==o:
 for x in r:
  for y in r:
   if x and y%x<1:g[x][y]=str(round(y/x))
if'**'==o:o='^'
print('\n'.join([' '.join([o]+list(map(str,r)))]+[' '.join([str(q)]+[' 'if len(x)!=1else x for x in g[q]])for q in r]))

ReplIT


প্রান্তের মামলাটি এড়াতে ডাবল লুপ +২৮ বাইটের চেয়ে তালিকার বোধগম্যে স্যুইচ করে -8 বাইট 0 ^ 0। -.-
-1 পরিবর্তন করে বাইট ==0থেকে <1@StewieGriffin ধন্যবাদ


" এ সম্পর্কে সবচেয়ে দুঃখজনক বিষয়টি হ'ল একটি জাভা উত্তর আমাকে মারধর করছে ... " এই অংশটি আমাকে চটকদার করে তুলেছে .. xD আমি পছন্দ করি আপনি কীভাবে সংখ্যার দৈর্ঘ্যটি পরীক্ষা করছেন এটি নির্ধারণ করার জন্য যে এটি এর সীমার মধ্যে রয়েছে কিনা 0-9। বিটিডব্লিউ, উম্মম .. আমি আপনার উত্তরগুলিতে একটি ত্রুটি লক্ষ্য করেছি। এটি বর্তমানে ক্ষয়ক্ষতির **পরিবর্তে আউটপুট দেয় ^। (এছাড়াও, আপনাকে ইনপুট দেওয়ার অনুমতি দেওয়া হয়েছে **, তবে ফলাফল-সারণীতে এটি আউটপুট দেওয়ার জন্য নয় Currently বর্তমানে আপনার কাছে এটি অন্যভাবে রয়েছে))
কেভিন ক্রুইজসেন

1
পুনঃটুইট সফলভাবে স্থির হয়েছে, কোনও বাইট গণনা পরিবর্তন নেই। যে ইশারা জন্য ধন্যবাদ!
হাইপার নিউট্রিনো

@ স্টেভিগ্রিফিন হ্যাঁ ধন্যবাদ.
হাইপারনিউটারিনো

4

জাভা 7, 312 305 বাইট

String c(int o){String r=("+-*/^%".charAt(o))+" 0 1 2 3 4 5 6 7 8 9\n";for(int i=0,j,p;i<10;i++){r+=i+" ";for(j=0;j<10;r+=p<0|p>9?"  ":p+" ")p=p(o,i,j++);r+="\n";}return r;}int p(int o,int a,double b){b=o<1?b+a:o<2?b-a:o<3?b*a:o<4&a>0?b/a:o<5&(a!=0|b!=0)?Math.pow(b,a):a>0?b%a:-1;return b%1==0?(int)b:-1;}

কোনও অনুভূমিক / উল্লম্ব লাইন ব্যবহার করে না এবং অক্ষরগুলি চ্যালেঞ্জ-উদাহরণগুলিতে প্রদর্শিত হয় ( +-*/^%)।
এর একটি সূচক ব্যবহার করে0-5ছয়টি গাণিতিক ক্রিয়াকলাপের ইনপুট হিসাবে ব্যবহার করে।

-7 বাইটস @ ফ্রোজেনকে ধন্যবাদ

ব্যাখ্যা:

String c(int o){                   // Method with integer parameter and String return-type
  String r = ("+-*/^%".charAt(o))  //  Get the current mathematical operand character based on the input index
    + " 0 1 2 3 4 5 6 7 8 9\n";    //  Append the column header and a new-line
  for(int i=0,j,p; i<10; i++){     //  Loop over the rows
    r += i+" ";                    //   Append the left-side row-nr
    for(j=0; j<10;                 //   Inner-loop over the columns of the current row
        r += p<0|p>9?"  ":p+" ")   //     And after every iteration, append the result with either a space or an integer
      p = p(o,i,j++);              //    Calculate the current sum-result
                                   //   End of inner-loop (implicit / single-line body)
    r+="\n";                       //   Append result with new-line
  }                                //  End of loop
  return r;                        //  Return result String
}                                  // End of method

int p(int o,int a,double b){       // Separate method with two integer and a double parameters and integer return-type
  b = o<1 ?                        //  If the given operand is 0:
       b+a                         //   Use addition
      : o<2 ?                      //  Els-if the given operand is 1:
       b-a                         //   Use subtraction
      : o<3 ?                      //  Else-if the given operand is 2:
       b*a                         //   Use multiplication
      : o<4 & a>0 ?                //  Else-if the given operand is 3 and `a` is above 0:
       b/a                         //   Use division
      : o<5 & (a!=0|b!=0) ?        //  Else-if the given operand is 4 and not both `a` and `b` are 0:
       Math.pow(b,a)               //   Use exponentiation
      : a>0 ?                      //  Else-if the given operand is 5:
       b%a                         //   Use modulo
      :                            //  Else:
       -1;                         //   Use -1 as result
  return b%1 == 0 ?                //  If the result is not a decimal number:
     (int)b                        //   Return the result
    :                              //  Else:
     -1;                           //   Return -1 as result
}                                  // End of separate method

পরীক্ষার কোড:

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

class M{
  String c(int o){String r=("+-*/^%".charAt(o))+" 0 1 2 3 4 5 6 7 8 9\n";for(int i=0,j,p;i<10;i++){r+=i+" ";for(j=0;j<10;r+=p<0|p>9?"  ":p+" ")p=p(o,i,j++);r+="\n";}return r;}int p(int o,int a,double b){b=o<1?b+a:o<2?b-a:o<3?b*a:o<4&a>0?b/a:o<5&(a!=0|b!=0)?Math.pow(b,a):a>0?b%a:-1;return b%1==0?(int)b:-1;}

  public static void main(String[]a){
    M m = new M();
    System.out.println(m.c(0)); // +
    System.out.println(m.c(1)); // -
    System.out.println(m.c(2)); // *
    System.out.println(m.c(3)); // /
    System.out.println(m.c(4)); // ^
    System.out.println(m.c(5)); // %
  }
}

1
হতে পারে আপনি bএকটি হিসাবে উত্তীর্ণ হতে doubleপারেন pএবং rশৃঙ্খলিত ত্রৈমাসিকের মান নির্ধারণ করে পরিত্রাণ পেতে পারেন b
হিমায়িত

3

হাস্কেল, 230 199 182 + 53 47 46 + 1 বিভাজকের বাইট = 284 247 232 229 বাইট

f=head.show
g=[0..9]
h=(:" ")
y(%)s=unlines$(s:map f g>>=h):[f y:[last$' ':[f(x%y)|x%y`elem`g]|x<-g]>>=h|y<-g]
0?0=10;a?b=a^b
a!0=10;a!b|(e,0)<-a`divMod`b=e|1>0=10
a&0=10;a&b=mod a b

ফাংশন হয় (zipWith y[(+),(-),(*),(!),(?),(&)]"+-*/^%"!!) যা একা 53 বাইট নেয়, যেখানে 0 যোগ হয়, 1 টি বিয়োগ হয়, 2 গুণ হয়, 3 বিভাগ হয়, 4 হয় ক্ষুদ্রতর এবং 5 টি মডুলো।

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

ব্যাখ্যা

পরে আসছি (সম্ভবত) । । । আপাতত কিছুটা সামান্য জোয়ার:? ক্ষমতার অপারেটর,! এটি বিভাগ অপারেটর এবং & মোড অপারেটর।

সম্পাদনা: বালকের বেশিরভাগ অংশ হতে পারে কারণ অন্যান্য উত্তরগুলির বেশিরভাগ (?) ইওল ব্যবহার করে, যা হাস্কেলের দীর্ঘ আমদানি ছাড়াই নেই।

এডিটি 2: কোডটি বন্ধ করে -31 বাইট (বাহ!) এর জন্য আরজান জোহানসেনকে ধন্যবাদ এবং ফাংশনটি বন্ধ -6 বাইট! ধারাবাহিকতার জন্য 11 এর দশকে কিছু পরিবর্তন করেছে। অনলাইন আপডেট করা সংস্করণ চেষ্টা করুন!

সম্পাদনা 3: একই ব্যক্তি, আরও সতেরো বাইট! অনলাইন আপডেট করা, আপডেট সংস্করণ চেষ্টা করুন!


1
সংক্ষিপ্ত !পরীক্ষা: e<-a`div`b,e*b==a=eবা (e,0)<-a`divMod`b=e
janrjan জোহানসেন

1
সংক্ষিপ্ত অনুষ্ঠান:(zipWith(#)"+-*/^%"[(+),(-),(*),(!),(?),(&)]!!)
Ørjan জোহানসেন

বিপরীত পরীক্ষাগুলি + একটি "স্ট্যান্ডার্ড" গল্ফিং ট্রিক দেয় last$f k:[' '|k<0||k>9]। অবশেষে (সম্ভবত), [0..9]এটি যথেষ্ট দীর্ঘ যে এটি দুবার ব্যবহার করার সময় এটি নাম হিসাবে সংজ্ঞায়িত করার জন্য অর্থ প্রদান করে।
janrjan জোহানসেন

নাহ, আরও একটি: এর k<-[o x y]চেয়ে খাটো let
janrjan জোহানসেন

একটি শব্দ: বাহ! :)
জেনেরিক প্রদর্শনের নাম

2

পাইথন 2 , 197 বাইট

p=input()
r=range(10)
s=' '
print p+s+s.join(map(str,r))
for i in r:print str(i)+s+s.join(eval(("s","str(j"+p+"i)")[i and(j%i==0 and'/'==p or'%'==p)or p in'**+-'and eval("j"+p+"i")in r])for j in r)

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

ইনপুট: পাইথন 2

'+' সংযোজন

'-' Sbtraction

'*' গুণ

'/' বিভাগ

'**' Exponentiation

'%' মডুলো

পাইথন ঘ , 200 বাইট

p=input()
r=range(10)
s=' '
print(p+s+s.join(map(str,r)))
for i in r:print(str(i)+s+s.join(eval(("s","str(j"+p+"i)")[i and(j%i==0 and'/'in p or'%'==p)or p in'**+-'and eval("j"+p+"i")in r])for j in r))

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

ইনপুট: পাইথন 3

+ সংযোজন

- Sbtraction

* গুণ

// বিভাগ

** Exponentiation

% মডুলো

ব্যাখ্যা

range(10)একটি ভেরিয়েবলের কাছে সংরক্ষণ করে rআমরা ফর্ম্যাটটির আউটপুট প্রথম লাইন পেতে পারি

operator 0 1 2 3 4 5 6 7 8 9

rস্ট্রিংয়ের প্রতিটি ইন ম্যাপিং করে এবং অপারেটরের ['0','1','2','3','4','5','6','7','8','9']সাথে স্থানের sসাথে স্ট্রিং তালিকায় যোগদান করেp

p+s+s.join(map(str,r)

এটির সাথে, প্রতিটি iইন r(রেঞ্জ) এর জন্য, প্রতিটি jমূল্যায়নের জন্য iএবং jআপনার অপারেটরের সাথে

eval("j"+p+"i")

এখানে, ব্যতিক্রমহীন - বিভাগ বা মডিউল 0 দ্বারা ব্যতিক্রম ছুঁড়ে দেওয়া যেতে পারে এই কেসটি পরিচালনা করতে i and(j%i==0 and'/'==p or'%'==p)) ( ) এবং সমস্যা বিবৃতিতে বর্ণিত আউটপুট ফর্ম্যাটটি (প্রতিটি মূল্যায়নের ফলাফলটি কোনও নেতিবাচক সংখ্যা বা তার চেয়ে বেশি সংখ্যক হওয়া উচিত নয়) 10 - eval("j"+p+"i")in r),

i and(j%i==0 and'/'==p or'%'==p)or p in'**+-'and eval("j"+p+"i")in r

এভাবে পাটিগণিত-ছক মুদ্রণ!

শুভ কোডিং!


উত্তম পাইথন 2 উত্তর। 197 এ অনুমান করুন যা আমাদের সমান করে তোলে। যদিও এটি আমাকে আরও কয়েকটি প্রচেষ্টা নিয়েছে। সাবাশ. সামান্য সমস্যা। জন্য / সারণীটি .0 দেখায় এবং পূর্ণসংখ্যা নয়। নিশ্চিত যে এটি সহজে সংশোধন করা হয়েছে :)
এলপেড্রো

দুঃখিত তবে আমি একবার দেখেছি আমার আপটোট প্রত্যাহার করে নিয়েছে, আপনি যখন এটি সংশোধন করার সুযোগ পেয়েছেন এটি আবার যুক্ত করবে :)
এলপেড্রো

ধন্যবাদ! আপনি যদি ইনপুট হিসাবে '/' ব্যবহার করেন তবে পাইথন 2 প্রিন্টগুলি ইনট এবং পাইথন 3 প্রিন্টগুলি ভাসমান। ফির অজগর 3 আপনাকে '//' ব্যবহার করতে হবে। আমি স্পষ্টভাবে উল্লেখ করেছি।
কেরথানা প্রভাকরণ

এবং দেখে মনে হচ্ছে যে কেউ আমার লিঙ্কটি সম্পাদনা করছে এবং পাইথন 2 লিঙ্কটি অজগর 3 এ পরিবর্তন করা হয়েছে I've আমি এখন এটিকে ফিরে পেয়েছি।
কীর্তন প্রভাকরণ

আমি আগে এই সমস্যা ছিল। আপনার একই পৃষ্ঠায় 2 টিওআই লিঙ্ক থাকার কারণে এটি। আপনি যখন কোনও লিঙ্কে ক্লিক করেন এটি এটির প্রথম লিঙ্ক সংজ্ঞাটি খোলে। "এটি অনলাইনে 3 চেষ্টা করে দেখুন" বা অন্য কোনও লিঙ্কটির নাম পরিবর্তন করে লিংক সংজ্ঞাটির নাম পরিবর্তন করে এটি ঘিরে নিন। ভাল কাজ করা উচিত।
এলপেড্রো

2

এপিএল (ডায়ালগ) , 68 76 বাইট

প্রয়োজন ⎕IO←0অনেক সিস্টেমে পূর্বনির্ধারিত। ইনপুটটির জন্য অনুরোধ জানায় এবং অপারেন্ডকে উপস্থাপন করে এমন একক অক্ষর প্রত্যাশা করে।

t'|'=w←⎕
(w,n),n⍪⍉⍣t∘.{(⍺w⍵≡0'*'0)∨(t∧⍵≡0)∨⍺w0'÷':⍬
n∊⍨r←⍵(⍎w)⍺:r
⍬}⍨n←⍳10

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

কোড বেশিরভাগটাই পাশকাটিয়ে হয় যে জন্য APL এর ফলাফল ÷0এবং 0*0এবং নিবারণ যে APL এর ফরমের (থেকে |) তার আর্গুমেন্ট সবচেয়ে অন্যান্য ভাষায় তুলনায় উল্টিয়ে ফেলেছে। অন্যথায় কেবলমাত্র 41 বাইট হত

w←⎕
(w,n),n⍪∘.{0::⍬
÷n∊⍨r←⍵(⍎w)⍺:r}⍨n←⍳10

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


কি দারুন! এবং আমার পাইথনের উত্তরে আমার সমস্ত পরিশ্রমের পরে। মেলা খেলা।
এলপেড্রো

1

আর , 194 177 বাইট

-17 মাইট্রিক্স আউটপুট ম্যানিপুলেটিং করতে বাইটস ing

function(o){s=0:9
y=sapply(s,function(x)Reduce(o,x,init=s))
dimnames(y)=list(s,rep('',10))
y[!y%in%s|!is.finite(y)]=' '
if(o=='^')y[1]=' '
cat(substr(o,1,1),s)
print(y,quote=F)}

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

এই পদ্ধতির পরিবর্তনে কিছু ডাউনসাইড রয়েছে, এটি ব্যবহার করে এটি অনুকূলিত করা যায় না pryr এবং আসল ম্যাট্রিক্স সেট আপ করার জন্য এটি সামান্য আঁকড়ে থাকে তবে এটি প্রথম লাইনে কিছু অনুসরণকারী স্পেস দিয়ে নিখুঁতভাবে আউটপুট হতে পারে।

মোড অপারেটরের substrকারণে আমাকে এখনও ট্রিকটি ব্যবহার করতে হবে %%। আমি যখন সুযোগ পেলাম তখন এটি ছাঁটাইতে থাকবে, বিশেষ ঘটনাগুলি নিয়ে এটি এখনও খুব আড়ম্বরপূর্ণ বোধ করে।


0

পিএইচপি, 191 বাইট

**পরিবর্তে ^ইনপুট হিসাবে+ - / % * **

echo$k=$argn,$k=="**"?"":" ",join(" ",$d=range(0,9));foreach($d as$r){echo"\n$r";foreach($d as$c){echo" ";($k=="/"|($m=$k=="%"))&$r<1?print" ":eval("echo in_array($c$k$r,\$d)?$c$k$r:' ';");}}

উভয় সংস্করণ অনলাইন সংস্করণ

পিএইচপি, 245 বাইট বিকাশ ছাড়াই

ইনপুট + - / % * ^

bcpowmod($c,1,$r)পরিবর্তে ব্যবহার করুন bcmod($c,$r)কারণ বিভাগ ইনপুটটিতে আমার তৃতীয় প্যারামিটার প্রয়োজন। $c**1%$r==$c%$r

বিসি ম্যাথ ফাংশন

echo$k=$argn," ".join(" ",$d=range(0,9));foreach($d as$r){echo"\n$r";foreach($d as$c)echo" ",in_array($s=($k=="/"|($m=$k=="%"))&$r<1?-1:("bc".["+"=>add,"-"=>sub,"/"=>div,"*"=>mul,"^"=>pow,"%"=>powmod][$k])($c,$m?1:$r,$m?$r:9),$d)?round($s):" ";}

0

05 এ বি 1 ই , 56 55 বাইট

9ÝDãεðýì„/%Iåyθ_*I'mQyO_*~iðë.VD9ÝQàiïëð]«TôεN<š}®I:ðý»

লাইন ছাড়াই ফলাফল এবং বিপরীত xএবং y। ইনপুট / আউটপুট ব্যবহার করছেন +, -, *, /, m, %

এটি অনলাইনে চেষ্টা করুন বা সমস্ত টেবিল যাচাই করুন

21 বাইট ফিক্স প্রান্ত মামলা করতে ব্যবহার করা হয় /0, %0এবং 0^0যা স্থাপিত 0, 0এবং 1যথাক্রমে 05AB1E মধ্যে .. এখানে যে অংশ ছাড়া ( 34 বাইট ):

9ÝDãεðýì.VD9ÝQàiïëð]«TôεN<š}®I:ðý»

এটি অনলাইনে চেষ্টা করুন বা সমস্ত সারণী ব্যবহার করে দেখুন

ব্যাখ্যা:

9Ý                     # Push list [0,1,2,3,4,5,6,7,8,9]
  D                    # Duplicate it (for the header later on)
   ã                   # Take the cartesian product with itself (creating all pairs):
                       #  [[0,0],[0,1],[0,2],...,[9,7],[9,8],[9,9]]
ε                      # Map each pair `y` to:
 ðý                    #  Join the pairs with a space
   ì                   #  Prepend it before the (implicit) input-char 
 „/%Iå                 #   If the input is "/" or "%"
         *             #   and
      yθ_              #   The last value of the pair is exactly 0
                  ~    #  OR
          I'mQ        '#   If the input is "m"
                 *     #   and
              yO_      #   The sum of the pair is exactly 0 (thus [0,0])
 i                     #  If that is truthy:
  ð                    #   Push a space character " "
 ë                     #  Else:
  .V                   #   Execute the string as 05AB1E code
    D                  #   Duplicate the result
     9ÝQài             #   If it's in the list [0,1,2,3,4,5,6,7,8,9]:
          ï            #    Cast it to an integer to remove any trailing ".0"
                       #    (since dividing always results in a float)
         ë             #   Else:
          ð            #    Push a space character " "
]                      # Close both the if-else clauses and the map
 «                     # Merge the resulting list with the duplicated [0,1,2,3,4,5,6,7,8,9]
  Tô                   # Split the list in parts of size 10
    ε   }              # Map each list to:
     N<                #  Get the map-index + 1
       š               #  And prepend it at the front of the list
         ®I:           # Then replace the "-1" with the input-character
ðý                     # And finally join every inner list by spaces
  »                    # And join the entire string by newlines (which is output implicitly)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.