চতুর্ভুজগুলি একটি লাইনের মধ্য দিয়ে গেছে


15

কার্য

একটি রেখার প্রতিনিধিত্ব দেওয়া, সেই লাইনটি যে পরিমাণ চতুর্ভুজটি পেরিয়ে যায় তার আউটপুট ।

একটি লাইনের বৈধ প্রতিনিধিত্ব

আপনি যেমন একটি লাইন প্রতিনিধিত্ব করতে পারেন

  • তিনটি স্বাক্ষরিত পূর্ণসংখ্যা A, Bএবং Cযা কোনও সাধারণ কারণকে ভাগ করে না এবং যেখানে Aএবং Bউভয়ই শূন্য নয়, লাইনটি উপস্থাপন করে Ax + By = C,
  • চার স্বাক্ষরিত পূর্ণসংখ্যার , , , এবং , লাইন পয়েন্ট মাধ্যমে ক্ষণস্থায়ী প্রতিনিধিত্বমূলক এবং , বাX1Y1X2Y2(X1, Y1)(X2, Y2)
  • একটি ডেটা টাইপ যা একটি লাইন বর্ণনা করে, যদি আপনার ভাষার একটি থাকে (এটি অবশ্যই উল্লম্ব রেখা সমর্থন করে)।

আপনি এমন কোনও ফর্ম্যাটে ইনপুট নিতে পারবেন না যা উল্লম্ব রেখার জন্য অনুমতি দেয় না (যেমন slাল-ইন্টারসেপ্ট ফর্ম)। আপনি যদি ইনপুট হিসাবে পূর্ণসংখ্যার গ্রহণ চয়ন করেন, আপনি ধরে নিতে পারেন যে তারা অন্তর্ভুক্ত ব্যাপ্তিতে রয়েছে [-127, 128]

বিশেষ উল্লেখ

  • আউটপুট সর্বদা 0, 2, বা 3 হবে (একটি লাইন কখনই চারটি চতুর্ভুজের মধ্য দিয়ে যেতে পারে না, এটি কেবল একটি একক দিয়েও যেতে পারে না)।
  • একটি অক্ষের একটি লাইন কোনও কোয়াড্রেন্টের মধ্য দিয়ে না যাওয়ার জন্য বিবেচিত হয়। উত্সের মধ্য দিয়ে একটি রেখা কেবল 2 কোয়াড্রেন্টের মধ্য দিয়ে যেতে পারে বলে মনে করা হয়।
  • কোন কোয়াড্রেন্টগুলির মধ্য দিয়ে যাচ্ছেন তা আপনাকে ফেরত পাঠাতে হবে না (যদিও পরীক্ষার কেসগুলি তাদের স্পষ্টতার জন্য অন্তর্ভুক্ত করে)।
  • এটি , তাই সংক্ষিপ্ততম বৈধ উত্তর (বাইটগুলিতে পরিমাপ করা) জয়ী।

পরীক্ষার কেস

এগুলি ব্যবহারের আগে আপনাকে এগুলি একটি উপযুক্ত বিন্যাসে রূপান্তর করতে হবে।

1x + 1y = 1   ->  3  (quadrants I, II, and IV)
-2x + 3y = 1  ->  3  (quadrants I, II, and III)
2x + -3y = 0  ->  2  (quadrants III and I)
1x + 1y = 0   ->  2  (quadrants II and IV)
3x + 0y = 6   ->  2  (quadrants I and IV)
-3x + 0y = 5  ->  2  (quadrants II and III)
0x + -8y = 4  ->  2  (quadrants III and IV)
0x + 1y = 0   ->  0  (lies on the x-axis)
1x + 0y = 0   ->  0  (lies on the y-axis)

1
তাদের যদি প্রয়োজন হয় তবে আমাদের স্কুলে লিকি নুনের কাছ থেকে যে কৌশলটি নেওয়া হয়েছিল সেগুলি শিখানো উচিত।
mbomb007

উত্তর:


22

3
... কি দারুন. এটি আমার চেয়েও তুচ্ছ।
21

আই / ও যদি অনুমতি দেয় তবে আপনি সম্ভবত তালিকার পরিবর্তে একটি স্ট্রিং ব্যবহার করতে পারেন।
জোনাথন ফ্রেচ

'320'[a.count(0)]স্ট্রিং আকারে মানটি ব্যবহার করা এবং ফেরানো কি গ্রহণযোগ্য হবে?
ফ্লিপট্যাক

2
এবং বাহ, দেখে মনে হচ্ছে সমস্ত উত্তর এখন "Leaky এর ভিত্তিতে"
ফ্লিপট্যাক

3
@ ফ্লিপট্যাক বিট্যাক্স জিতেছে: পি
লিকি নুন

3

জেলি , 5 বাইট

TL’ȧ$

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

  • চ্যালেঞ্জার 5 -1 বাইট ধন্যবাদ
  • -1 বাইট ধন্যবাদ লিকি নুনকে
  • -২ বাইট H.PWiz ধন্যবাদ

লিকির উত্তর আর ভিত্তি নেই!


ċ0ị2,0,3একটি বাইট সংরক্ষণ করুন
ফল

@ চ্যালেঞ্জার 5 হু, তাই এটি হয়। ধন্যবাদ!
কেয়ার্ড কোইনারিংহিংহ


1
কীভাবে TL’ȧ$। জেলিকে জানেন না, তাই এটি গল্ফযোগ্য হতে পারে
এইচপিউইজ

@ এইচপিউইজ খুব সুন্দর! আমি মনে করি না যে এটি গল্ফ করা যেতে পারে তবে আমি ভুল হতে পারি।
কেয়ার্ড কোইনারিংহিংহ

3

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

এটি আমার প্রথমবারের মত জাভাস্ক্রিপ্টে গল্ফ করার চেষ্টা করছে। শূন্যগুলি গণনা করার আরও ভাল উপায় থাকতে হবে ...

(a,b,c)=>3<<!a+!b+!c&3

-6 বাইট হারম্যান লাউস্টেইনকে ধন্যবাদ, অপারেটর নজিরগুলি মনে রাখার জন্য -2 বাইটস।

পরিবর্তে একটি স্ট্রিং ফিরে পাওয়ার জন্য বিকল্প 24-বাইট সমাধান:

(a,b,c)=>"320"[!a+!b+!c]

1
এটি আসলে মোটামুটি চালাক ...
Esolanging ফ্রুট

1
অ্যারে ব্যবহার না করে 24 বাইট(a,b,c)=>3<<(!a+!b+!c)&3
হারমান এল

দেখে মনে হচ্ছে যে আমি আর কোনও অ্যারে ব্যবহার না করে গল্ফ খনি করতে পারি না ...
ericw31415



2

গল্ফস্ক্রিপ্ট , 16 14 বাইট

~{!!}%{+}*.1>*

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

  • @ চ্যালেঞ্জার 5 -2 বাইট

এই প্রোগ্রামটি সমীকরণের সহগের প্রতিনিধিত্ব করে 3 পূর্ণসংখ্যার একটি অ্যারে নেয় Ax + By = C

উদাহরণ ইনপুট / আউটপুট

[1 1 1]   -> 3
[-2 3 1]  -> 3

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

~                       - Eval string (input)
  {  }%                 - Map to array
   !!                   - Double not (equivalent to != 0)
        {+}*            - total array (fold addition)
            .           - Duplicate top of stack
             1>         - Greater than 1?
               *        - Multiply     

এটি গণনা করার জন্য গাণিতিক উপায়টি বের করা আমার পক্ষে প্রথমে কিছুটা জটিল ছিল। তবে এখানে 8 টির মতো সম্ভাব্য কনফিগারেশন রয়েছেa != 0 & b != 0 & c != 0

0 0 0 = 0
a 0 0 = 0
0 b 0 = 0
0 0 c = 0
a 0 c = 2
0 b c = 2
a b 0 = 2
a b c = 3

আমি অবশেষে নিম্নলিখিত ফাংশনে এসেছি।

F(a,b,c) {
    var r = sign(a)+sign(b)+sign(c);
    if(r > 1)
        r;
    else
        return 0;
}

এবং পুরো জিনিসটি একক গণিত সমস্যার সাথে সংঘবদ্ধ হতে পারে

F(a,b,c) {
    return (sign(a)+sign(b)+sign(c)) * (sign(a)+sign(b)+sign(c) > 1);
}

আমি মনে করি আপনি এর {!!}%পরিবর্তে ব্যবহার করতে পারেন [{!!}/]
Esolanging ফল

এই জমা দেওয়ার সিজেম অনুবাদটি হ'ল {:!:!:+_1>*}
এশোলং ফলগুলি

@ চ্যালেঞ্জার 5 লোল, আমি কীভাবে বুঝতে পারি নি। এছাড়াও সুন্দর বন্দর, আমি এখন এটি কীভাবে পড়তে হয় তা শিখতে হবে।
মার্কোস

এই ক্ষেত্রে উল্লেখযোগ্য পার্থক্য :!হ'ল 1) ম্যাপিংয়ের জন্য শর্টহ্যান্ড ( সমান {!}%) 2, হ্রাস করার জন্য শর্টহ্যান্ড ( :+সমতুল্য {+}*), 3) যা .পরিবর্তিত হয়েছে _(কারণ সিজেমে ভাসমান রয়েছে), এবং 4) যে সিজেমের ইনপুট নেই ডিফল্টরূপে স্ট্যাকে, এর অর্থ এটি কোডটিকে {}একটি ফাংশন করতে আপনি মোড়ানো w
এশোলং ফলগুলি

2

রেটিনা , 13 বাইট

M`\b0
T`d`320

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

লিকি নুনের উত্তরের উপর ভিত্তি করে ।


10উদাহরণস্বরূপ যদি ইনপুটটিতে থাকে তবে এটি কাজ করে না । প্রথম রেজেক্স হওয়া দরকার \b0
মার্টিন ইন্ডার

1

জাভাস্ক্রিপ্ট, 25 বাইট

_=>3<<!_[0]+!_[1]+!_[2]&3

লিকি নুনের উত্তর ভিত্তিক




1

এবিসিআর , 30 বাইট

ইনপুট সেই ফর্মটিতে রয়েছে A,B,Cযেখানে কোনও কমা অ-সংখ্যাযুক্ত, অ- -চরিত্র দ্বারা কমাগুলি প্রতিস্থাপন করা যেতে পারে ।

BBi7baxci7baxci7bax@7)A7(xxo

এখনও কোনও অনলাইন দোভাষী নেই, তবে এখানে একটি ব্যাখ্যা রয়েছে:

BB                                Add two values to the B queue. (Values are unimportant)
  i7 ax                           Read in a number.  If it's non-zero...
    b                             Dequeue one item from the B queue.
       c                          Read in the delimiter...
        i                         ... And promptly overwrite it with the next number.
         7baxci7bax               Repeat the whole "if 0, dequeue from B" for the
                                     other two input numbers.
                   @              Get the current length of the B queue. [2, 1, or 0]
                    7             If the length isn't 0...
                     )            ... Increment it to our required [3,2,0]
                      A           ... And enqueue it to A.
                                  (We don't need to add to A otherwise, because it defaults
                                    to 0 already if there's no value in it.
                                    I used that to exit the queue with 7_ax earlier.)
                       7(xx       Set the register to 0 to exit from loop.
                           o      Peek A and print as a number.


0

Deorst , 12 বাইট

l0EN))A:k?Z+

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

কিছুটা বন্ধ লিকার উত্তরকে ; একই ভিত্তি ব্যবহার করে তবে একটি ভিন্ন ম্যাপিং পদ্ধতি।

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

ডিওর্স্টের একটি গণনা সংঘটন রয়েছে, তবে (কোনও কারণে) একটি সূচক কমান্ড নেই, সুতরাং আমাকে নীচের ম্যাপিংটি তৈরি করতে হয়েছিল, যেখানে বামটি এবং ডানটি a.count(0)চান ফলাফল

0 -> 3
1 -> 2
2 -> 0

প্রোগ্রামটি নিজেই এর মতো কাজ করে (উদাহরণস্বরূপ ইনপুট [1,1,1])

l0           - Push 0;     STACK = [[1 1 1] 0]
  EN         - Count;      STACK = [0]
    ))       - Subtract 2; STACK = [-2]
      A      - Absolute;   STACK = [2]
       :     - Duplicate;  STACK = [2 2]
        k?Z  - Positive?;  STACK = [2 1]
           + - Sum;        STACK = [3]

0

++ , 23 বাইট যুক্ত করুন

D,f,@@@,!$!@!s2$_|d0$>+

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

আমার ডিওরস্ট উত্তর উভয়ের ভিত্তিতে এবং লিকির পাইথন উত্তর

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

D,f,@@@,  - Create a triadic function. 
            Example arguments;   [1 1 1]
        ! - Logical NOT; STACK = [1 1 0]
        $ - Swap;        STACK = [1 0 1]
        ! - Logical NOT; STACK = [1 0 0]
        @ - Reverse;     STACK = [0 0 1]
        ! - Logical NOT; STACK = [0 0 0]
        s - Sum;         STACK = [0]
        2 - Push 2;      STACK = [0 2]
        $ - Swap;        STACK = [2 0]
        _ - Subtract;    STACK = [-2]
        | - Absolute;    STACK = [2]
        d - Duplicate;   STACK = [2 2]
        0 - Push 0;      STACK = [2 2 0]
        $ - Swap;        STACK = [2 0 2]
        > - Greater to;  STACK = [2 1]
        + - Sum;         STACK = [3]

যাইহোক, আমি মনে করি আমি মূল কোড বডিটির পরিবর্তে অ্যাড ++ এ ফাংশনগুলি বেশি ব্যবহার করেছি। সুতরাং আমি উভয় ফাংশন এবং কোড বডি ব্যবহার করে এটি করার চেষ্টা করেছি এবং ফলস্বরূপ 50 টি বাইট টুকরোটি পেয়েছি (হ্যাঁ, এটি এখানে দীর্ঘতম উত্তর):

# Example input: 1 1 1;
# x and y are the accumulators

D,f,@@@,!$!@!s # Count the 0s
$f>?>?>?       # Call f with the input.
-2   # Subtract 2;    x: -2;  y: 0
^2   # Square;        x: 4;   y: 0
S    # Square root;   x: 2.0; y: 0
\1   # To integer;    x: 2;   y: 0
y:x  # Assign x to y; x: 2;   y: 2
}    # Switch to y;   x: 2;   y: 2
>0   # Is positive?;  x: 2;   y: 1
}    # Switch to x;   x: 2;   y: 1
+y   # Add y to x;    x: 3;   y: 1
O    # Print x

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

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