বিভাগ এবং বাকি


36

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

কাজটি

দুটি প্রাকৃতিক সংখ্যা aএবং bইনপুট হিসাবে এবং অন্য দুটি সংখ্যা আউটপুট নিন : পূর্ণসংখ্যা বিভাগের ফলাফল a/bএবং এই জাতীয় বিভাগের বাকী অংশ ( a%b)।

এটি : সংক্ষিপ্ত উত্তর (বাইটে), প্রতিটি ভাষার জন্য, জয়!

ইনপুট আউটপুট

  • 0 <= a<= 255, 1 <= b<= 255। আপনার প্রতিটি ইনপুট (এবং আউটপুটগুলিও) একক বাইটে খাপ খায়।
  • আপনি দুটি ইনপুট এবং আউটপুট উভয়ই পছন্দ করতে পারেন এমন দুটি বিন্যাস বেছে নিতে পারেন, যতক্ষণ না দুটি সংখ্যা স্পষ্টত পৃথক হয় (উদাহরণস্বরূপ সীমানা ছাড়াই দুটি ফলাফল মুদ্রণ করা হয় না)

উদাহরণ

a,b->division,remainder
5,7->0,5
5,1->5,0
18,4->4,2
255,25->10,5

দ্রষ্টব্য: বিল্টিনগুলি যা বিভাগের ফলাফল এবং বাকী উভয়ই নিষিদ্ধ করে । আপনার ভাষা একই যুক্তিতে দুটি ফাংশন প্রয়োগ করার ক্ষেত্রে কীভাবে আমাদের আচরণ করে তা আমাদের দেখান show

দ্রষ্টব্য 2: বরাবরের মতো, আপনার কোডটি কীভাবে কাজ করে তার একটি ব্যাখ্যা খুব স্বাগত, এমনকি যদি এটি আপনার কাছে পঠনযোগ্য মনে হয় তবে এটি অন্য কারও পক্ষে নাও হতে পারে!


লিডারবোর্ড

ভাষা দ্বারা বিজয়ীদের সংক্ষিপ্ত বিবরণ উত্পন্ন করতে এখানে স্ট্যাক স্নিপেট।

আপনার উত্তরটি প্রদর্শিত হয়েছে তা নিশ্চিত করার জন্য, দয়া করে নীচের মার্কডাউন টেমপ্লেটটি ব্যবহার করে আপনার উত্তরটি শিরোনাম দিয়ে শুরু করুন:

# Language Name, N bytes

Nআপনার জমা দেওয়ার আকারটি কোথায় ? আপনি যদি নিজের স্কোরটি উন্নত করেন তবে আপনি পুরানো স্কোরগুলি শিরোনামে রেখে দিতে পারেন । এই ক্ষেত্রে:

# Ruby, <s>104</s> <s>101</s> 96 bytes

সেখানে যদি আপনি আপনার শিরোনামে একাধিক সংখ্যা অন্তর্ভুক্ত করতে চান (যেমন আপনার স্কোর দুটি ফাইলের যোগফল বা আপনি আলাদাভাবে দোভাষী পতাকা শুল্ক তালিকাভুক্ত করতে চান), নিশ্চিত করুন যে আসল স্কোরটি শিরোনামের শেষ সংখ্যা:

# Perl, 43 + 2 (-p flag) = 45 bytes

আপনি ভাষাটির নামটিকে একটি লিঙ্কও বানাতে পারেন যা লিডারবোর্ড স্নিপেটে প্রদর্শিত হবে:

# [><>](http://esolangs.org/wiki/Fish), 121 bytes


আমি যুক্তিগুলি বিপরীত করতে পারি, অর্থাত্ পরিবর্তে a bপ্রদানের b aপরিবর্তে?
এরিক দ্য আউটগল্ফার

@ এরিকথ আউটগলফার:You may choose any format you like for both input and output, as long as the two numbers are clearly distinguishable
এমিগিনা

@ এমিগনা হ্যাঁ, আমি নিশ্চিত ছিলাম না যে বিপরীতগুলি যদিও তাদেরকে অবিচ্ছেদ্য করে তুলবে না।
এরিক দ্য আউটগল্ফার ২

@ এরিকথ আউটগল্ফার যদি আপনি জানেন যে তাদের বিপরীত করা দরকার আপনার তাদের আলাদা করার কোনও সমস্যা নেই :)
লিও

দুর্ভাগ্যক্রমে, বিএফ অ্যালগরিদম বিভাজক হলে কাজ করে না 1
mbomb007

উত্তর:


23

বিটসাইকেল , 146 79 64 বাইট

আমার আসল কোডটির পুরো অংশটি অনুধাবন করা মাত্র অনুধাবন করা হয়েছিল। বিশাল হ্রাস!

v  <>!
A\B^^=
? D^>^<
 >\v^~ D@
 >/ C/
  > C ^
A/B v
^   <
?  D^

প্রোগ্রামটি প্রথমে বিভাজক সহ কমান্ড লাইন থেকে আনারি ইনপুট নেয়। এটি ভাগ করে এবং বাকীটিকে অ্যানারিতে আউটপুট করে, এ দ্বারা পৃথক করা হয় 0। উদাহরণস্বরূপ, এখানে a=11, b=4, a/b=2, a%b=3:

C:\>python bitcycle.py divmod.btc 1111 11111111111
110111

কর্মহীন, কর্মহীন

এখানে আমার ungolfed সংস্করণ কম্পিউটিং এর a=3, b=5অ্যানিমেশন চালু (দুঃখিত glitchiness সম্পর্কে) ঃ

বিটসাইকেলে ডিভোমড চলছে

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

ব্যাখ্যাটি বর্ণা .্য সংস্করণে প্রযোজ্য। আপনি এটি মোকাবেলা করার আগে, আমি আপনাকে Esolangs পৃষ্ঠাটি পড়ার পরামর্শ দিচ্ছি কীভাবে কাজ করে তার অনুভূতি পেতে ।

অ্যালগরিদম এভাবে চলে:

  • প্রোগ্রামটি শেষ না হওয়া পর্যন্ত একটি বাহ্যিক লুপ চালান।
    • ডিভাইডারের বিটগুলির উপর একটি অভ্যন্তরীণ লুপ চালান, লভ্যাংশ থেকে বিটগুলি দিয়ে তাদের জোড়া করুন।
      • বিভাজকের সমস্ত বিটের যদি মিলের লভ্যাংশ বিট থাকে তবে একটি বিট আউটপুট।
      • বিভাজকের সমস্ত বিটের যদি মিলনযোগ্য লভ্যাংশ বিট না থাকে তবে বিভাজকটি 0তারপরে লভ্যাংশ বিটগুলি কী ছিল তা অনুসরণ করে আউটপুট দিন , তবে সমাপ্ত করুন।

কোডের কেন্দ্রস্থল হ'ল সংগ্রহকারীদের মধ্যে বড় সম্পর্ক (বড় হাতের অক্ষর)। যেহেতু প্রতিটি অক্ষর সঙ্গে একাধিক পৃথক সংগ্রাহক হয়, এর হিসাবে তাদের পড়ুন দিন A1, A2, B1, B2ইত্যাদি উপর থেকে নীচে সংখ্যায়ন।

  • A1 এবং A2 মূল লুপের শুরুতে যথাক্রমে বিভাজক এবং লভ্যাংশ ধরে রাখুন।
  • অভ্যন্তরীণ লুপটি বিভাজক এবং লভ্যাংশ থেকে একবারে একবারে বন্ধ করে দেয়।
    • বাকী বিভাজন, যদি থাকে তবে সর্বদা প্রবেশ করে B1
    • যদি উভয় ভাজক এবং লভ্যাংশ nonempty ছিল, এক বিট মধ্যে যায় C1এবং মধ্যে এক C3। বাকি লভ্যাংশ .ুকে যায় B2
    • যদি কেবলমাত্র বিভাজকটি নিখরচায় না হয়, আমরা লভ্যাংশের শেষে পৌঁছেছি, এবং বাকীটি মুদ্রণের সময় এসেছে। বিভাজক থেকে বিট .োকাC2
    • যদি কেবলমাত্র লভ্যাংশটি অযৌক্তিক না হয়, আমরা বিভাজকের শেষ প্রান্তে পৌঁছেছি; এটি C3বা C2আউটপুট জন্য বিট প্রক্রিয়া করার সময় । বাকি লভ্যাংশ .ুকে যায় C4
  • Bসংগ্রাহকগুলিতে যদি কোনও বিট থাকে তবে তারা তাদের বিষয়বস্তুগুলি চারিদিকের দিকে ঘিরেA সংগ্রহকারীদের চলে যায় এবং অভ্যন্তরীণ লুপে অবিরত থাকে।
  • একবার Aএবং Bসংগ্রাহকরা সমস্ত খালি হয়ে গেলে , Cসংগ্রহকারীগুলি খোলা হয় এবং আমরা প্রসেসিং পর্যায়ে এগিয়ে যাই:
    • C1এবং C4তাদের বিষয়বস্তুগুলি (যথাক্রমে বিভাজক এবং অবশিষ্ট লভ্যাংশ,) D1এবং এ ফেলে দিন D3
    • যদি C2 খালি থাকে, আমরা এখনও ভাগফল মুদ্রণ করছি।
      • C3উপরের ডানদিকে =স্যুইচ পর্যন্ত সামগ্রীগুলি । প্রথম 1বিট সোজা দিয়ে চলে যায়! এবং আউটপুট।
      • 1বিটটি যখন যায় তখন এটি স্যুইচটি ডানদিকে নির্দেশ করতে সক্রিয় করে, যা পরবর্তী সমস্ত বিটগুলি বোর্ড থেকে প্রেরণ করে।
    • যদি C2 খালি না হয়, আমরা বাকীটি মুদ্রণ করছি।
      • এর প্রথম বিটটি C2এটিকে অবহেলা করা 0হয় এবং স্যুইচটি দিয়ে যায় passed 0যায়! এবং আউটপুট হয়।
      • যখন 0বিটটি পাশ দিয়ে যায় তখন এটি স্যুইচটিকে বাম দিকের দিকে সক্রিয় করে। এখন থেকে সমস্ত বিটগুলি C3স্যুইচ থেকে বাম দিকে যেতে হবে এবং চারদিকে পুনঃনির্দেশিত হয়! পুরো বাকী অংশটিকে আউটপুট করে ।
      • এর থেকে প্রথম বিটের একটি অনুলিপিও C2পাঠানো হয়েছে D2
  • এখন Dসংগ্রহকারীরা খোলে।
    • যদি কিছু থাকে তবে এর D2অর্থ আমরা কেবলমাত্র বাকীটি মুদ্রণ করেছি। থেকে বিট D2হিট @, যা প্রোগ্রামটি শেষ করে।
    • অন্যথায়, যথাক্রমে D1এবং D3লুপের সামগ্রীগুলি A1এবং A2যথাক্রমে ফিরে আসে এবং মূল লুপটি আবার শুরু হয়।

এটি দুর্দান্ত
ইভান কারস্লেক

"প্রোগ্রামটি কমান্ড লাইন থেকে অ্যানারিতে ইনপুট নেয়": এটি আমার কাছে বাইনারি বলে মনে হচ্ছে?
therealfarfetchd

উপস। কারণ আউটপুটটি বাইনারি মতো লাগছিল, তবে ইনপুটটি খুব বেশি হওয়া উচিত। তারপরে আমি লেখাটি পড়ি। কিছু মনে করো না. : পি
therealfarfetchd

15

ব্রেনফাক , 43 41 বাইট

,<,[>->+<[>]>>>>+<<<[<+>-]<<[<]>-]>>.>>>.

এটি এষোলংসে আমার ধ্বংসাত্মক মডুলাস অ্যালগরিদমের একটি পরিবর্তিত সংস্করণ ব্যবহার করে

প্রোগ্রামটি দুটি বাইট পড়বে - ডি এবং এন , সেই ক্রমে - এসটিডিআইএন থেকে এবং দুটি বাইট প্রিন্ট করে - n% d এবং n / d , সেই ক্রমে - STDOUT। এটিতে দ্বিগুণ অসীম বা বৃত্তাকার টেপযুক্ত ব্রেনফাক দোভাষী দরকার যেমন টিআইও-তে থাকা একটি।

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

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

প্রোগ্রামটি শুরুর আগে সমস্ত কক্ষের মান 0 থাকে । STDIN ( ) থেকে ডি পড়ার পরে ,, এক ধাপ বামে সরানো ( <) এবং STDIN ( ) থেকে এন পড়ার পরে ,, টেপটি নীচের মত দেখাচ্ছে।

       v
A      B      C      D      E      F      G      H      J
0      n      d      0      0      0      0      0      0

এর পরে, যে এন> 0 ধরে , আমরা যখন লুপ প্রবেশ করি

[>->+<[>]>>>>+<<<[<+>-]<<[<]>-]

যা টেপকে নীচে রূপান্তরিত করে।

প্রথমে, >->+<সেল সি তে অগ্রগতি হয় এবং এটি হ্রাস পায়, তারপরে কোষ ডি তে অগ্রগতি হয় এবং এটি বৃদ্ধি করে এবং শেষ পর্যন্ত সেল সিতে ফিরে যায় । পরবর্তী কি ঘটে তা সেল সি এর মান শূন্য কিনা তার উপর নির্ভর করে ।

  • যদি সেল সি একটি ধনাত্মক মান ধরে রাখে, [>](ঘরটি শূন্যের তুলনায় ডানদিকে যান) E কক্ষে উন্নত হবে ।

    >>>>+<<<কোষ জে এটি বৃদ্ধি করার জন্য অগ্রগতি হয় , তারপরে আবার সেল এফ এ ফিরে যায়

    যেহেতু ঘর এফ সর্বদা 0 থাকে , তাই লুপটি [<+>-]পুরোপুরি এড়িয়ে <<যায় এবং সেল ডিতে ফিরে যায়

    শেষ অবধি, যেহেতু ডি এবং সি উভয়ই ধরে না , [<](ঘরটি শূন্য নয় এমন বাম দিকে যেতে হবে) কোষ A তে ফিরে যাবে

  • যদি সেল সি 0 ধরে থাকে তবে লুপটি [>]পুরোপুরি এড়িয়ে যায়; জি>>>>+<<< সেলটি বাড়িয়ে তুলতে অগ্রসর হয় , তারপরে আবার সেল ডি তে ফিরে যায়

    এই মুহুর্তে, ডি রাখা হবে (আসলে, মানগুলির সমষ্টি সি এবং ডি সবসময় হতে হবে ), তাই [<+>-](যখন ডি ইতিবাচক হয়, বৃদ্ধি সি এবং হ্রাস ডি ) সেট হবে সি থেকে এবং ডি করতে 0

    শেষ <<অবধি, কোষ বিতে retrocedes , [<](ঘরটি শূন্য নয় এমন বাম দিকে যান) আরও সেল এ তে বামে ।

উভয় ক্ষেত্রেই, >-কোষ বিতে অগ্রগতি এবং এটি হ্রাস পায় এবং লুপটি শুরু হয় যতক্ষণ না এটি জিরোয় না করে।

কে পুনরাবৃত্তির পরে টেপটি নিম্নরূপ দেখায়।

       v
A      B      C      D      E      F      G      H      J
0      n-k    d-k%d  k%d    0      0      k/d    0      k-k/d

পরে এন পুনরাবৃত্তিও বি আউট zeroed এবং আমরা লুপ আউট বিরতি। পছন্দসই মানগুলি ( n% d এবং n / d ) ডি এবং জি কোষে সংরক্ষণ করা হবে , তাই >>.>>>.তাদের মুদ্রণ করুন।


12

ফানসিটন , 224 108 বাইট

বাইট গণনাটি বিওএম-এর সাথে ইউটিএফ -16 এনকোডিং অনুমান করে।

 ┌──┬───┐
┌┴╖╓┴╖ ┌┴╖
│%╟║f╟┐│÷╟┘
╘╤╝╙─╜│╘╤╝
 └────┴─┘

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

fউপরেরটি একটি ফাংশন সংজ্ঞায়িত করে , যা দুটি পূর্ণসংখ্যা গ্রহণ করে এবং তাদের বিভাগ এবং তাদের পণ্য উভয়ই প্রদান করে (ফানসিটনে ফাংশনগুলি ইনপুট এবং আউটপুটগুলির যোগফল 4 এর বেশি না হওয়া পর্যন্ত একাধিক আউটপুট থাকতে পারে)।

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

সমাধানটি কার্যকরভাবে প্রয়োগ না করে ফলাফল কীভাবে ব্যবহারকারীর কাছে প্রদর্শন করা যায় তা নির্ধারণ করতে এটি আমাকে দ্বিগুণ সময় নিয়েছিল।

এছাড়াও, ফানসিটনের একটি বিল্ট-ইন ডিভোড রয়েছে, এবং মজাদারভাবে ÷%বিল্ট-ইনগুলি রয়েছে ÷এবং %আমার সলিউশনগুলির ব্যবহারগুলি শর্তায় কার্যকর করা হয় ÷% । তবে fউপরের আমার ফাংশনটি একেবারে একরকম নয় ÷%: আমাকে ইনপুটগুলির ক্রমটি অদলবদল করতে হয়েছিল এবং যদিও এটির পরিবর্তনটি সহজ হওয়া উচিত বলে মনে হয়, এখনও পর্যন্ত আমি বাইট সংখ্যা বাড়িয়ে না করে এটি করতে পারিনি ।


10

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

এক আউট বাইট গল্ফ করার জন্য @ আরনাউল্ডকে ধন্যবাদ জানাই

x=>y=>[x/y|0,x%y]

বিন্যাস (এক্স) (y) এ ইনপুট গ্রহণ করে

বিটওয়াইজ করে এক্স / ওয়াই ফ্লোর পাবেন বা
এক্স%
ওয়াইয়ের দ্বারা বাকিটি পাওয়া যায় উভয় মানকে একটি অ্যারেতে রাখে যাতে সেগুলি উভয়ই ফিরে আসতে পারে

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


10

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

-২ বাইটস @ জিএনএনকে ধন্যবাদ

⌊÷,|⍨

এটি একটি কাঁটাচামচ (3-ট্রেন) এর একটি উপরে (2-ট্রেন), যেখানে atop এর ডান টাইনটি প্রাপ্ত একটি ফাংশন (কোনও ফাংশনে প্রয়োগ করা অপারেটরের ফলাফল):

       result 
         ↑┌──────────┐
         ││    ┌────┐│┌──────┐ (derived function)
         │↓        ↓│↓      │╱
       ┌───┐ ┌───┐ ┌───┐ ╔═══╤═══╗
           ÷   ,   |    
       └───┘ └───┘ └───┘ ╚═══╧═══╝
                              
left argument ┴─────────────────┘  (operator)
                └─────────┴ right argument

 মেঝে

÷ বিভাগ

, catedated

|
 অদলবদল যুক্তিগুলির সাথে  বিভাগের অবশিষ্টাংশ (এপিএল মডুলাসটি "পিছনের দিকে")

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


কীভাবে আপনি এই দুর্দান্ত চিত্রটি তৈরি করেছেন?
emiflake

2
নিবন্ধন করুন ডায়ালগ এপিএল সুক্ষ্ম ফাংশনগুলির মৌলিক ট্রি ডায়াগ্রামগুলি তৈরি করার ক্ষমতা নিয়ে আসে। এটি অনলাইন চেষ্টা করুন! আমি এটি
দিয়েই

খুব, খুব কঠিন দেখাচ্ছে। আমি যে ভয় পাচ্ছি এর জন্য আমার ধৈর্য নেই, হাহা
এমিফ্লেক ২ '

সংক্ষিপ্ত:⌊÷,|⍨
ngn

@ জিএন ওউচ, আপনি আমাকে পেয়েছেন আপনি এখনও এখানে আছেন তা দেখে খুশি।
অ্যাডাম

7

ব্র্যাচল্যাগ , 6 বাইট

{÷|%}ᶠ

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

ব্যাখ্যা

ᶠ findallদুটি আর্গুমেন্টের ইনপুট তালিকায় দুটি পৃথক পূর্বাভাস প্রয়োগ করতে আমরা মেটাপ্রেডিকেটটিকে অপব্যবহার করি :

{   }ᶠ         Findall for the Input [A,B] :
 ÷               Integer division
  |              Or…
   %             Modulo

7

এমএটিএল , 12 10 বাইট

Qt:ie=&fhq

ইনপুট হয় a , তারপর b। আউটপুট বাকি, তারপর ভাগফল।

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

ব্যাখ্যা

এটি মডুলো এবং বিভাগ উভয়ই এড়িয়ে চলে। পরিবর্তে এটি অ্যারে পুনর্নির্মাণের ব্যবহার করে :

  1. একটি অ্যারে তৈরি করুন a+1ননজারো উপাদানগুলির ।
  2. একটি 2D অ্যারের হিসাবে পুনরায় আকার দিন bসারিগুলির । এটি প্রয়োজনে স্বয়ংক্রিয়ভাবে শূন্যগুলির সাথে প্যাড করে।
  3. সর্বশেষ নঞ্জেরো প্রবেশের সারি এবং কলাম সূচকগুলি 1যথাক্রমে বাকী এবং ভাগফল।

উদাহরণস্বরূপ বিবেচনা করুন a=7, b=3

Q    % Input a implicitly. Push a+1
     % STACK: 8
t:   % Duplicate. Range from 1 to that
     % STACK: 8, [1 2 3 4 5 6 7 8]
ie   % Input b. Reshape as a matrix with b rows (in column major order)
     % STACK: 8, [1 4 7;
                  2 5 8]
                  3 6 0]
=    % Compare for equality
     % STACK: [0 0 0;
               0 0 1;
               0 0 0]
&f   % Row and column indices (1-based) of nonzero element
     % STACK: 2, 3
hq   % Concatenate. Subtract 1. Implicitly display
     % STACK: [1 2]

2
এটি পার্শ্বীয় চিন্তাভাবনার দুর্দান্ত উদাহরণ, চমৎকার কাজ!
লিও

6

গণিত, 20 18 বাইট

⌊#/#2⌋@Mod@##&

নমনীয় আউটপুট নিয়মের div[mod]সামান্য অপব্যবহার: ফলাফল হিসাবে দেওয়া হয় , যা অবমূল্যায়িত থাকবে। স্বতন্ত্র নম্বরগুলি result[[0]]এবং দিয়ে বের করা যায় result[[1]]

আরে, এটি অন্তর্নির্মিত হাস্যকরভাবে নামের চেয়ে কেবলমাত্র একটি বাইট দীর্ঘ QuotientRemainder

ম্যাথামেটিকায়, একই ইনপুটটিতে একাধিক ফাংশন প্রয়োগ করার জন্য একটি ঝরঝরে উপায় রয়েছে তবে এটি তিন বাইট দীর্ঘ:

Through@*{Quotient,Mod}

1
আপনি জানেন যে আপনি যখন ভাষা বিল্ট-ইনগুলি তৈরি করেন যা কেবল বিল্ট-ইনগুলি সংহত করে…
ফ্যাটালাইজ করুন

1
@ ফ্যাটালাইজ এটা কি? আমি ডিভোড বিল্ট-ইনগুলি বেশ দরকারী বলে মনে করি এবং ম্যাথমেটিকা ​​একমাত্র ভাষা নয় not
মার্টিন এন্ডার

8
@ ফ্যাটালাইজ করুন, অবশিষ্ট কাজগুলি গণনা করার জন্য একই কাজটির অনেকগুলি অংশের গুণাগুলি প্রয়োজন। যদি উভয় ফলাফলই ব্যবহার করতে হয় তবে সঠিকভাবে ইঞ্জিনিয়ারড quotRemবিল্টিন কল করার ক্ষেত্রে quotএবং remআলাদাভাবে উল্লেখযোগ্য সময় সাশ্রয় করতে পারে ।
জুলিয়ান ওল্ফ 14

6

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

÷²¹%‚

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

05AB1E এর একটি বাগ রয়েছে, সুতরাং অন্তর্নিহিত ইনপুটটি কাজ করে না :( এমিগানা উল্লেখ করেছেন যে ইনপুটগুলি প্রায়শই বিপরীত দিকে ঠেলা যায়।


আপনি 5 বাইটের জন্য ÷ ²¹%) করতে পারেন ।
এমিগিনা

@ এমিগনা যদিও এটি বৈধ হয় আমি ডান না। অপেক্ষা করুন, কিভাবে কাজ?
এরিক আউটগল্ফার

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

@ এমিগনা আমি ওপিকে জিজ্ঞাসা করেছি যদি আমি যুক্তিগুলি উল্টাতে পারি তবে।
এরিক আউটগল্ফার

2
আমি You may choose any format you like for both input and output, as long as the two numbers are clearly distinguishableবোঝাতে চাইছি যে আপনি সিদ্ধান্ত নিতে পারেন যে ইনপুটগুলি গ্রহণ করা হয়েছে divisor, dividenddivisor, dividendউত্তরে আপনি কেবল "ইনপুট হিসাবে নেওয়া হয় " নির্দিষ্ট করতে পারেন এবং সেগুলি স্পষ্টভাবে পার্থক্যযোগ্য হবে :)
এমিংগা

6

জেলিফিশ , 14 বাইট

p
m
,|S
% i
Ei

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

ব্যাখ্যা

একই ইনপুটটিতে একাধিক ফাংশন প্রয়োগ করার ক্ষেত্রে জেলিফিশ একটি সুন্দর ভাষা। ভাষাটি 2 ডি এবং সমস্ত বাইনারি ফাংশন এক ইনপুটটির জন্য দক্ষিণ এবং অন্যটির জন্য পূর্ব দিকে দেখায়। সুতরাং পশ্চিম এবং উত্তর থেকে একটি মান পৌঁছানোর মাধ্যমে, আমরা কোডটিতে এটির নকল না করে দুটি ফাংশনে ফিড করতে পারি।

iপ্রোগ্রামটি শুরু হওয়ার সাথে সাথে প্রোগ্রামের দুটি গুলি দুটি ইনপুট মানগুলির সাথে প্রতিস্থাপিত হয়। এখন %বিভাজন। এটি পূর্ব থেকে সরাসরি একটি ইনপুট নেয় এবং দক্ষিণে যাওয়ার সময় এটি হিট দেয় Eযা পূর্বের দিকে অনুসন্ধানের পুননির্দেশনা করে। সুতরাং উভয় ইনপুট %আর্গুমেন্ট হিসাবে খাওয়ানো হয় ।

| মডুলোর জন্য অন্তর্নির্মিত, যা মূলত একই জিনিসটি করে, তবে উভয়ের জন্য দক্ষিণে খুঁজছে looking

আমরা উভয় ফলাফলের সাথে একটি জুটি তৈরি করি ,। তারপরে mফ্লোর ফাংশন (যা আমাদের প্রয়োজন কারণ %ভাসমান-পয়েন্ট বিভাগ) এবং অবশেষে আমরা ফলাফলটি প্রিন্ট করি p


6

কিউবিক্স , 12 13 বাইট

;W@o,I|\S%;O

নিম্নলিখিত ঘনক্ষেত্র যা মানচিত্র

    ; W
    @ o
, I | \ S % ; O
. . . . . . . .
    . .
    . .

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

মৃত্যুদন্ড প্রাপ্ত পদক্ষেপের সাথে ব্যাখ্যা
,I|I,- একটি অতিরিক্ত পূর্ণসংখ্যার বিভাজন দিয়ে শুরু হয়, ইনপুট থেকে প্রথম পূর্ণসংখ্যা পায়, প্রতিফলিত হয় এবং ইনপুট থেকে পরবর্তী পূর্ণসংখ্যা পায়, তারপরে আবার বিভাজন
O;ঘটে - পূর্ণসংখ্যা বিভাগের ফলাফল আউটপুট করে এটি পপ করুন
%- মোড করুন। এটি পরে করা যেতে পারে তবে এখানেই শেষ হয়ে গেছে
S\o- স্ট্যাকের জন্য স্থান অক্ষর যুক্ত করুন, পুনর্নির্দেশ আপ এবং আউটপুট স্পেস
W;- বামদিকে স্থানান্তর করুন এবং স্ট্যাকটি থেকে স্থানটি পপ করুন
O|@- পূর্বে গণনা করা মোড আউটপুট করুন, অনুভূমিক প্রতিবিম্বক এবং স্থগিত হয়ে যান।


দুই মিনিট আমাকে মারধর। চমৎকার উত্তর!
লুক 19

@ লুক থ্যাঙ্কস, ভেবেছিলাম আমি আর একটি
ছাড়তে পারি

6

ব্রেন-ফ্লাক , 56 54 বাইট

({}<>)<>([()]{()<(({})){({}[()])<>}{}>}<><([{}()]{})>)

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

-2 বাইট ধন্যবাদ গমের উইজার্ড

ব্যাখ্যা

বর্তমানের সর্বাধিক পরিচিত পূর্ণসংখ্যা বিভাগ এবং মডিউল ব্রেন-বিমানবিধ্বংসী কামান খুব (অনুরূপ আসলে বর্তমানে বিভাজন পূর্ণসংখ্যা ব্যবহার করা হয় শুধু একটি পরিবর্তন আমি তৈরি করা হয় feersum এর মডিউল)।

মডুলো এবং পূর্ণসংখ্যা বিভাগের তুলনা:
Modulo:   ({}(<>))<>     {   (({})){({}[()])<>}{} }{}<> ([{}()]{})
Division: ({}(<>))<>([()]{()<(({})){({}[()])<>}{}>}{}<><  {}   {} >)

সুবিধাজনকভাবে, পূর্ণসংখ্যা বিভাগের প্রোগ্রামটি কেবলমাত্র ব্যবহার করে তৃতীয় স্ট্যাক ব্যবহার করে ডেটা সংরক্ষণের জন্য ব্যবহার করে যখন মডিউলো প্রোগ্রাম কেবল ডেটা সংরক্ষণের জন্য সাধারণ দুটি স্ট্যাক ব্যবহার করে। সুতরাং কেবল একই সময়ে উভয়কে চালিয়ে তারা একে অপরের সাথে সংঘর্ষে নেমে না।

মডুলো এবং পূর্ণসংখ্যা বিভাগের সংমিশ্রণ:
Modulo:   ({}(<>))<>     {   (({})){({}[()])<>}{} }{}<> ([{}()]{})
Division: ({}(<>))<>([()]{()<(({})){({}[()])<>}{}>}{}<><  {}   {} >)

Combined: ({}(<>))<>([()]{()<(({})){({}[()])<>}{}>}{}<><([{}()]{})>)

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

এটি আমাদের চূড়ান্ত প্রোগ্রাম দেয়:
({}<>)<>([()]{()<(({})){({}[()])<>}{}>}<><([{}()]{})>)

পূর্ণসংখ্যা বিভাগের প্রোগ্রামের ব্যাখ্যার জন্য দেখুন ফেয়ারসামের উত্তর দেখুন

পূর্ণাঙ্গ বিভাগের ব্যাখ্যা শীঘ্রই আসছে ...


5

জাভা 8, 18 বাইট

(a,b)->a/b+","+a%b

এটি টাইপের ল্যাম্বডা এক্সপ্রেশন BiFunction<Integer, Integer, String>

আমি অবাক হলাম ... এটি আসলে জাভার পক্ষে মোটামুটি সংক্ষিপ্ত সমাধান। লাম্বদা এক্সপ্রেশন!


5

ব্রেন-ফ্লাক , 168 148 110 বাইট

আমার ধারণা আমি প্রথমে উইকির চেক করা উচিত ছিল

(({})(<({}(<(({})<>)>))<>([()]{()<(({})){({}[()])<>}{}>}{}<><{}{}>)>))<>{(({})){({}[()])<>}{}}{}<>([{}()]{}<>)

বিন্যাস:

Input:    Output:
A (18)    remainder (2)
B (4)     division  (4)

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

(({})(<           # Copy A
({}(<             # Pick up A
(({})<>)          # Copy B to the other stack
>))               # Put A on top of a 0 on the second stack
                  # At this point the stacks look like this:   A
                                                               0
                                                             B B
                                                               ^

<>([()]{()<(({})){({}[()])<>}{}>}{}<><{}{}>) # Positive division from the wiki
>))                                          # Put down A on top of a 0
                                             # The stack now: A
                                                              0
                                                            Div B
                                                              ^

<>{(({})){({}[()])<>}{}}{}<>([{}()]{}<>)     # Modulo from the wiki


5

সেড, 36 বাইট

কোডের 35 বাইট, -rপতাকাটির জন্য +1 ।

:a;s/^(1+)( 1*)\1/\1\2x/;ta;s/.* //

প্রথমে ছোট সংখ্যার সাথে অ্যানারি, স্পেস-বিভাজনে ইনপুট নেয়। অবিচ্ছিন্ন হিসাবে আউটপুটগুলি প্রথম দিকে ভাগফল 1এবং দ্বিতীয়টিতে বাকীx এস এর । (যদি এটি গ্রহণযোগ্য না হয় তবে আমাকে জানান এবং আমি এটিকে 1ইনপুটের মতো স্থান-বিচ্ছিন্নভাবে পরিবর্তন করব ))

ব্যাখ্যা

:a;                                  Define label a
   s/            /     /;            Perform this substitution:
     ^(1+)                           Match the first unary number...
          ( 1*)                      ... followed by a space and 0 or more 1s...
               \1                    ... followed by the the first group again
                  \1\2x              Keep the first two parts unchanged; replace the third
                                     with an x
                         ta;         If the substitution succeeded, goto a
                            s/.* //  After the loop is over, remove the first number

5

এক্সেল 2013, 31 30 26 বাইট

=INT(A1/B1)&","&MOD(A1;B1)

ব্যাখ্যা

ইনপুটটি ঘরে রয়েছে A1এবং B1। এই কেবল ফেরত মান ফেরৎ FLOORএবং MODযা বিভাজন মেঝে এবং বাকি জন্য ফাংশন,। এই মানগুলি কমা দ্বারা পৃথক করা হয়।


আমি মনে করি আপনার ঘর A1 এবং B1 এর অর্থ A1 এবং A2 নয়
fəˈnɛtɪk

হ্যা ধন্যবাদ. এখন সংশোধন
লুক

এর FLOOR(A1/B1;1)পরিবর্তে 1 বাইট সংরক্ষণ করুনQUOTIENT(A1;B1)
ইঞ্জিনিয়ার টোস্ট

ইনপুটটি সর্বদা একটি প্রাকৃতিক সংখ্যা বলে মনে হয় আপনি FLOOR(A1/B1;1)আরও 4 টি বাইট সংরক্ষণ করতে `INT (A1 / B1) 'দিয়ে প্রতিস্থাপন করতে পারবেন
ওয়ার্নিশ



4

তেল , 134 106 103 102 বাইট

স্টিডিন থেকে ইনপুট নেয়, দুটি সংখ্যা একটি নতুন লাইনের দ্বারা পৃথক করা। পূর্ণসংখ্যা বিভাগের ফলাফল, তারপরে একটি নতুন লাইন এবং তারপরে অবশিষ্টটি ফলাফল দেয়।

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

স্ক্রিপ্টিং ভাষার স্টাইলে মন্তব্য সহ আমি একটি বর্ণিত বিন্যাসে কোডটি উপস্থাপন করি। কার্যকর করার আগে, মন্তব্যগুলি সরিয়ে ফেলতে হবে।

5  # read input into lines 0 and 2

5
2
0  # the zero to compare to (nops)
1  # make a backup of the second input at line 3
2
3
10 # check if the second input is 0. %
4
2
24 # if so, jump to 24 (marked with §)
13 # else, go on
10 # check if the first input is zero &
4

31 # if so, jump to 31 (marked with $)
18 # else, go on
9  # decrement both numbers

9
2
6  # jump to line 8 (marked with %)
8
8  # increment the value in line 1 (initially a zero) §
1
1  # "restore the backup"
3
2
6  # jump to line 13 (marked with &)
13
10 # is the second number zero? $
4
2
42 # if so, jump to 42 (marked with +)
36 # else go on
9  # decrement both the second number and the backup
2
9
3
6  # jump to 31 (marked with $)
31
4  # print the division +
1
11 # a newline
4
3  # and the remainder (from the backup)

সম্পাদনা করুন: "ধ্রুবক" কে এক-অঙ্কের স্থানে (রেফারেন্সের চেয়ে কম বাইট) সরানোর পরে আরও 3 বাইট বন্ধ করে দেওয়া হয়েছে, এবং তারপরে 2 জিরো-লোকেশন-ইম্পিটেড-ইন (পরিবর্তে একটি খালি লাইন ব্যবহার করে them তাদের মধ্যে একটি আমি করতে পারতাম) আগে).

সম্পাদনা: এবং প্রাথমিক শূন্য অন্তর্ভুক্ত করে অন্য একটি বাইট। আমাদের সত্যই কেবল একটি একক আক্ষরিক শূন্য প্রয়োজন।


মহান কাজ! ঠিক এই ধরণের জবাব আমি আশা করেছি যে এই চ্যালেঞ্জটি আসবে :) কেবল একটি নোট: আপনি গ্যারান্টিযুক্ত যে বিভাজক সর্বদা কঠোরভাবে ইতিবাচক থাকবে, সুতরাং আপনাকে 0% দ্বারা বিভাজনের জন্য চেক করার প্রয়োজন হবে না
লিও

@ লিও আমি গ্যারান্টিযুক্ত যে বিভাজক সর্বদা শুরুতে কঠোরভাবে ইতিবাচক থাকবে । আমি বিভাগটি শূন্যভাগে ভাগ করে নিলে এটি কার্যকর হবে না, "আসল" বিভাগটি যখন স্বাভাবিক হয় তখনও এই কেসটি ঘটতে পারে। যদি আমি সঠিকভাবে মনে রাখি তবে বাকীটি শূন্য হলে এটি ঘটে।
L3viathan

আমি লাইন 4-এ চেকের বিষয়ে কথা বলছি, 12 লাইনের এক নয় ... প্রোগ্রামটির শুরুতে এটি একবারে কার্যকর হয় না?
লিও

@ লিয়ো সম্পন্ন, প্রায় 30 টি অক্ষর কম, ধন্যবাদ!
L3viathan

4

অক্ষিপট , 14 বাইট

আসুন ইনপুট / আউটপুট ফর্ম্যাটগুলি অপব্যবহার করি!

(.*)¶(\1)*
$#2

হিসাবে ইনপুট লাগে b\na , ইনরিপ ডিজিটের জন্য কোনও একক অ-অঙ্ক, অ-নিউলাইন অক্ষর । দশমিকের মধ্যে ভাগফলকে আউটপুট দেয়, তত্ক্ষণাত্ আনিয়ারিতে বাকীটি অনুসরণ করে, ইনপুট হিসাবে একই অক্ষরটি ব্যবহার করে।

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

(.*) ¶(\1)*প্রথম সংখ্যার সাথে মেলে, তারপরে একটি নতুন লাইন (Ret n এর জন্য রেটিনার শর্টহ্যান্ড), তারপরে প্রথম সংখ্যাটি যতবার সম্ভব সম্ভব হবে times দ্বিতীয় গ্রুপের ম্যাচের সংখ্যা বিভাগের ফলাফল হবে, এবং অংশটি মিলেছে না the

এর সাথে $#2, আমরা পূর্ববর্তী লাইনে মিলিত সমস্ত কিছু দ্বিতীয় গ্রুপের ক্যাপচারের সংখ্যার সাথে প্রতিস্থাপন করি এবং তারপরে আমাদের ফলাফলটি পাই।


হাহাহা, ঠিক আছে, আমি স্পষ্টভাবে সন্ধ্যার শেষ দিকে প্রোগ্রাম লিখতে হবে না।
FryAmTheEggman

4

আর্নল্ডসি , 286 283 বাইট

HEY CHRISTMAS TREE c
YOU SET US UP 0
HEY CHRISTMAS TREE d
YOU SET US UP 0 
GET TO THE CHOPPER c
HERE IS MY INVITATION a
HE HAD TO SPLIT b
ENOUGH TALK
GET TO THE CHOPPER d
HERE IS MY INVITATION a
I LET HIM GO b
ENOUGH TALK
TALK TO THE HAND c
TALK TO THE HAND d
YOU HAVE BEEN TERMINATED

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

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

HEY CHRISTMAS TREE c      //DECLARE VARIABLE c = 0
YOU SET US UP 0
HEY CHRISTMAS TREE d      //DECLARE VARIABLE d = 0
YOU SET US UP 0

GET TO THE CHOPPER c      /*
HERE IS MY INVITATION a      SET c = a/b
HE HAD TO SPLIT b         
ENOUGH TALK                */

GET TO THE CHOPPER d      /*
HERE IS MY INVITATION a      SET d = a mod b
I LET HIM GO b
ENOUGH TALK                */

TALK TO THE HAND c        // PRINT c
TALK TO THE HAND d        // PRINT d
YOU HAVE BEEN TERMINATED  //END

আউটপুট ফরমেট

a/b
a mod b

3

ল্যাবরেথ , 11 বাইট

?:?:}/!\{%!

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

ব্যাখ্যা

?:   Read a and duplicate.
?:   Read b and duplicate.
}    Move a copy of b over to the auxiliary stage.
/    Compute a/b.
!    Print it.
\    Print a linefeed.
{    Get back the other copy of b.
%    Compute a%b.
!    Print it.

আইপি তার পরে একটি নির্ধারিত প্রান্তে আঘাত করে, ঘুরে দেখা যায় এবং %আবার কার্যকর করার সময় শূন্য দ্বারা চেষ্টা করার চেষ্টা করার কারণে প্রোগ্রামটি বন্ধ হয়ে যায় ।



3

> <> , ২ 26 26 16 + 1 = 17 বাইট

:r:{%:n','o-$,n;

বিঃদ্রঃ

  • -vপতাকা ব্যবহার করে ইনপুট করুন , উদাহরণের জন্য টিআইও দেখুন।
  • এটি প্রথমে অবশিষ্টটিকে আউটপুট দেয়, তারপরে একটি কমা এবং শেষ পর্যন্ত পূর্ণসংখ্যা বিভাগ।

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

ব্যাখ্যা

নোট করুন যে স্ট্যাকটি শুরু হয়েছে A, B, যেখানে ব্যবহৃত হয়েছে Aএবং Bপ্রথম এবং দ্বিতীয় ইনপুটটির প্রতিনিধিত্ব করা হয়েছে, কারণ -vব্যবহৃত পতাকাটির কারণে ।

:r:{%:n','o-$,n; # Explanation
:r:{             # Do some stack modifications to prepare it for
                 #    next part
                 #    (Stack: B, A, A, B)
    %            # Take the modulo of the top two items
                 #    (Stack: B, A, A%B)
     :           # Duplicate it
                 #    (Stack: B, A, A%B, A%B)
      n          # Pop once and output as number
                 #    (Stack: B, A, A%B)
       ','o      # Print separator
                 #    (Stack: B, A, A%B)
           -     # Subtract the modulo from the first input
                 #    (Stack: B, A-A%B)
            $,   # Swap the two inputs so they are back in order
                 #     and divide, so we get an integer
                 #    (Stack: floor(A/B))
              n; # Output that as a number and finish.

আপনি 255 অবধি ইনপুট মানগুলি কীভাবে সরবরাহ করতে পারেন?
লিও

কেবল উচ্চতর ASCII / ইউনিকোড মান ব্যবহার করুন। এইভাবে, į255 হয়ে যায়
লূক

ঠিক আছে, দুর্দান্ত :) যাইহোক, সরাসরি -v পতাকার সাহায্যে কমান্ড লাইন থেকে ইনপুট নম্বর নেওয়া কি কম হবে না?
লিও

এটি হবে, তবে আমি টিআইওতে কাজ করতে পারি না, তাই আমি এই সমাধানটির সাথে স্থির হয়েছি। এটি 8 টি বাইট সংরক্ষণ করবে - 1 ( -vপতাকার জন্য)।
লুক


3

সি, 21 বাইট

#define f(a,b)a/b,a%b

একটি ম্যাক্রো যা f (a, b) এর পরিবর্তে 2 টি শর্ত কমা দিয়ে পৃথক করে। যদিও আপনি এটি কোনও ফাংশনে ভালভাবে পাঠাবেন বা অন্যথায় 2 টি আলাদা করার কোনও উপায় নেই way

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


3

হাস্কেল , 21 বাইট

a#b=(div a b,mod a b)

এটি অনলাইন চেষ্টা করুন! উদাহরণ ব্যবহার: 13#2আয় (6,1)। হ্যাঁ, এটি বেশ বিরক্তিকর, যদিও বিল্ট divMod-ইনটি একই কাজ করে তার চেয়ে খানিকটা আকর্ষণীয় ।

আমরা এটা হয়, তখন সেখানে হয় quot, remএবং quotRemযা স্বাভাবিক সংখ্যার একই আচরণ div, modএবং divMod। তবে নেতিবাচক ইনপুটগুলির ফলাফলের জন্যmod বিভাজকের মতো একই চিহ্ন রয়েছে, যখন ফলাফলের remলভ্যাংশের একই চিহ্ন রয়েছে। বা, যেমন এটি প্রিলিওড ডকুমেন্টেশনে রাখা হয়েছে , quotপূর্ণসংখ্যা বিভাগটি শূন্যের দিকে কাটা হয় এবং divএটি পূর্ণসংখ্যা বিভাগকে নেতিবাচক অনন্তের দিকে কাটা হয়।


না divবা modবিল্ড-ইনগুলি সম্পর্কে কীভাবে ?

কোনও বিল্ড-ইন নেই, 36 32 31 বাইট

a#b|a<b=(a,0)|m<-a-b=(+1)<$>m#b

এটি অনলাইন চেষ্টা করুন! ব্যবহারের উদাহরণ: 13#2রিটার্ন (1,6), modফলাফলটি প্রথম এবং divদ্বিতীয় ফলাফল। যদি aছোট হয় b, তবে a mod bহয় aএবং a div bহয় 0তাই (a,0)ফিরে আসে। তা না হলে যাও recursively গনা modএবং divএর a-bএবং b, যোগ 1বিভাজন ফলাফলের প্রয়োজন এবং বাকি রাখা।

বিভাগের ফলাফলের সাথে 1 যুক্ত করা ব্যবহারের মাধ্যমে অর্জন করা হয় <$>যা সাধারণত mapতালিকার উপরে ফাংশন ম্যাপ করার জন্য ব্যবহৃত হয় তবে টিপলগুলিতেও কাজ করে, তবে ফাংশনটি কেবলমাত্র দ্বিতীয় টিউপল উপাদানটিতে প্রয়োগ করা হয়।

সম্পাদনা করুন: এক্সনোরকে ধন্যবাদ একটি বাইট সংরক্ষিত!


2
আপনার দ্বিতীয় সলিউশন ব্যবহার একটি বাইট শেভ করতে <$>তার দ্বিতীয় উপাদান কাজ করার জন্য একটি tuple করুন: a#b|a<b=(a,0)|m<-a-b=(+1)<$>m#b
xnor

3

এসডাব্লুআই প্রোলগ, 109 বাইট

p(A):-print(A).
d(F,S,0,F):-S>F.
d(F,S,D,R):-G is F-S,d(G,S,E,R),D is E+1.
d(F,S):-d(F,S,D,R),p(D),p(-),p(R).

আউটপুট:

?- d(255,25).
10-5
true .
?- d(5,7).
0-5
true .

বর্ণনা:

বিল্টিন বিভাগ বা মডুলো ছাড়াই সাধারণ পুনরাবৃত্তির অ্যালগরিদম। এটি কেবল গণনা করা হয় "দ্বিতীয় সংখ্যাটি প্রথমটির সাথে কতবার ফিট করে?" এবং ফলাফলটি (ডি তে একীভূত) বাকি (আর) এর সাথে রিপোর্ট করে।

// সম্পাদনা: অপ্রয়োজনীয় জায়গাগুলি সরানো হয়েছে


পিপিসিজিতে আপনাকে স্বাগতম! আমি এর আগে কখনও প্রোলোগ ব্যবহার করিনি, তবে লক্ষ্য করেছি :-শেষ লাইনের আশেপাশে ফাঁকা জায়গা রয়েছে তবে অন্যের উপরে নয়। তারা কি কোনও কারণে সেখানে প্রয়োজনীয়? একই জন্য যায় E + 1যখন F-Sসুপারিশ প্রয়োজন কোন শূন্যস্থান আছে।
লাইকনি 11

লাইকোনি: আপনি নিশ্চয়ই ঠিক বলেছেন! আমি স্রেফ স্পেসগুলি সরিয়েছি এবং চূড়ান্ত বাইট গণনা আপডেট করেছি।
জান ড্রোজেন



2

আওোবরোস , 15 বাইট

r.r.@/Inao\%n1(

বিপরীত ক্রমে সংখ্যাগুলি নেয় (যেমন 10 42)। এখানে চেষ্টা করুন।

ব্যাখ্যা

r.r.             Read a number, duplicate, read a number, duplicate
    @            Rotate a copy of the first number to the top of the stack
     /I          Divide and truncate to integer
       n         Output as number
        ao       Push 10 and output as character (newline)
          \%     Swap the remaining two values and take the mod
            n    Output as number
             1(  Push 1 and swallow that many characters from the end of the program,
                 halting execution
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.