সংযোজন ছাড়াই যুক্ত করুন (বা 4 টি মৌলিক পাটিগণিত অপারেটরগুলির মধ্যে একটি)


40

সমস্যা:

আপনার লক্ষ্য নিম্নলিখিত গাণিতিক অপারেটরের কোন ব্যবহার না করেই দুটি ইনপুট সংখ্যা যোগ করার জন্য হল: +,-,*,/

অতিরিক্তভাবে, আপনি কোনও গণিত অপারেটরগুলি প্রতিস্থাপনের জন্য নকশাকৃত কোনও অন্তর্নির্মিত ফাংশন ব্যবহার করতে পারবেন না।

স্কোরিং:

ক্ষুদ্রতম কোড (বাইটের সংখ্যায়) জয়ী।

হালনাগাদ

বেশিরভাগ প্রোগ্রাম আমি দেখেছি যে হয় দুটি সংখ্যক অ্যারে সংযুক্ত করে তাদের সংখ্যা রয়েছে, বা first numberএকটি চরিত্র তৈরি করে, second numberঅক্ষর যুক্ত করুন, তারপরে সেগুলি সমস্ত গণনা করুন।

সংক্ষিপ্ততম অ্যারে কাউন্টার: টোবিয়ার দ্বারা 8 টি অক্ষর সহ এপিএল

সংক্ষিপ্ততম অ্যারে কনটেনটেশন : ডুরকনব দ্বারা 4 টি চর সহ গল্ফস্ক্রিপ্ট

সংক্ষিপ্ত লোগারিদমিক সমাধান: টিআই -৯৯ বেসিকটি ১৯ টি চর সহ, কুইকুনাক্স দ্বারা

সংহতকরণ সমাধান: মাইকেল স্টারন দ্বারা 45 টি অক্ষর সহ ম্যাথমেটিকা

দুর্দান্ত, আমার মতে: জাভাস্ক্রিপ্টে বিটওয়াইজ অপারেটরগুলি, ডেভ দ্বারা


এটি কি ভাসমান হবে?
ইসমাইল মিগুয়েল

7
এটিতে নেতিবাচক সংখ্যা থাকবে? (বর্তমানে, সমস্ত উত্তর অনুমান করে যে সংখ্যাগুলি ইতিবাচক হবে, সুতরাং আপনার সম্ভবত এটি পরিবর্তন করা উচিত নয়)
ডোরকনব

4
গাণিতিক সমাধান সম্পর্কে কি? আপনি তাদের তালিকা করতে ভুলে গেছেন! এটি সংহত করে এবং
জাস্টিন

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

2
"সংখ্যা" সংজ্ঞায়িত করুন। কোন পূর্ণসংখ্যা? অ-নেতিবাচক পূর্ণসংখ্যার? তাদের কি বেস -10 হতে হবে?
সুপারজেডি ২৪

উত্তর:


2

স্মার্টটাক, 21 13

নিম্নলিখিত সমস্ত শুধুমাত্র ধনাত্মক পূর্ণসংখ্যার উপর কাজ করে। গুরুতর জবাবদিহি করার জন্য অন্যান্য স্মলটকের উত্তর দেখুন ।

version1

একটি বড় পূর্ণসংখ্যায় স্থানান্তরিত করা এবং এটির উচ্চ বিট সূচকটির জন্য জিজ্ঞাসা করা (খারাপ, এসটি সূচকটি 1-ভিত্তিক, সুতরাং আমার একটি অতিরিক্ত ডান শিফট প্রয়োজন):

(((1<<a)<<b)>>1)highBit

version2

অনুরূপ, এবং এমনকি কিছুটা খাটো (স্মলটালকের অগ্রাধিকার নিয়মের কারণে, এবং কোনও সঠিক শিফ্টের প্রয়োজন নেই):

1<<a<<b log:2 

version3

"সংকলন-জিজ্ঞাসা-জিজ্ঞাসা আকার" থিমের আরও একটি প্রকরণ,
দুটি এবং ক এবং খ দেওয়া হয়েছে,

((Array new:a),(Array new:b)) size

ব্যবধান হিসাবে অন্তরগুলি ব্যবহার করে, আমরা 21 টি অক্ষরে আরও মেমরি বান্ধব সংস্করণ পাই ;-):

((1to:a),(1to:b))size

ভারী সংখ্যা ক্রাঞ্চিংয়ের জন্য প্রস্তাবিত নয়, যদিও।

version4

আপনার বিনোদনের জন্য, আপনি যদি স্মৃতির জন্য সময় বাণিজ্য করতে চান, চেষ্টা করুন:

Time secondsToRun:[
   Delay waitForSeconds:a.
   Delay waitForSeconds:b.
]

যা সাধারণত যথেষ্ট সঠিক (তবে কোনও গ্যারান্টি নেই ;-))

version5

একটি ফাইল লিখুন এবং তার আকার জিজ্ঞাসা করুন

(
    [
        't' asFilename 
            writingFileDo:[:s |
                a timesRepeat:[ 'x' printOn:s ].
                b timesRepeat:[ 'x' printOn:s ]];
            fileSize 
    ] ensure:[
        't' asFilename delete
    ]
) print

45

জাভাস্ক্রিপ্ট (25)

while(y)x^=y,y=(y&x^y)<<1

এটি কেবল বিটওয়াইজ অপারেশনগুলি ব্যবহার করে এক্স এবং y দুটি ভেরিয়েবল যুক্ত করে এবং এক্সকে ফলাফল সংরক্ষণ করে।

এটি নেতিবাচক সংখ্যাগুলির সাথেও কাজ করে।


1
@ ডেভ, আপনি যদি কিছুক্ষণ পরিবর্তন করতে চান তবে আপনি আরও দুটি চর সংরক্ষণ করতে পারবেন while(y)x^=y,y=(y&x^y)<<1!
ডোম হেস্টিংস


3
@ ব্যবহারকারী3125280, সমস্যাটি "সংযোজন না করে সংযোজন করা" নয় (যা কিছুটা অযৌক্তিক) তবে বরং "বেসিক গণিত অপারেটর ছাড়া সংযোজন করুন"
ব্রায়ান এস

8
@ ব্যবহারকারী3125280, আমি দুঃখিত, তবে আপনি আমার মন্তব্য থেকে ব্যাখ্যা করা কোনও অভদ্রতা উদ্দেশ্য নয়। আমার মনে হয় আপনার খুব অনেক লোককে খুঁজে পেতে খুব কঠিন সময় আসবে যারা একমত হন যে XOR কে "বেসিক পাটিগণিত," বিভাগে যদিও PLUS এর সাথে গ্রুপ করা উচিত। এমনকি সম্মত লোকদের সন্ধানের বাইরেও, অপারেটরদের কী অনুমোদিত নয়, ওপি স্পষ্টভাবে ডাকে এবং এক্সওআর তাদের মধ্যে একটিও নয়। কিন্তু, এটি একটি বৈধ উত্তর।
ব্রায়ান এস

3
for(;y;y=(y&x^y)<<1)x^=y1 বাইট সংক্ষিপ্ত :)
উইলিয়াম বারবোসা

22

সি - 38 বাইট

main(){return printf("%*c%*c",3,0,4);}

আমি এখানে কিছুটা প্রতারণা করি, কোনও গণিত অপারেটর ব্যবহার না করার জন্য ওপি বলেছিল ।

*মধ্যে printf()বিন্যাস মানে যে ক্ষেত্র প্রস্থ চরিত্র প্রিন্ট করতে ব্যবহৃত একটি আর্গুমেন্ট থেকে নেওয়া হয় printf()এই ক্ষেত্রে,, 3 এবং 4 ফেরত মান printf()মুদ্রিত অক্ষরের সংখ্যা। সুতরাং এটি 3 এর ' 'ক্ষেত্র-প্রস্থ সহ একটি মুদ্রণ করছে এবং 4 এর ক্ষেত্র প্রস্থের সাথে একটি মোট 3 + 4 অক্ষর তৈরি করে।

রিটার্ন মান হ'ল printf()কলটিতে যুক্ত সংখ্যাগুলি ।


3
আপনি 3 এবং 4 পরামিতি করা উচিত, এবং ফাংশন হবে করার দরকার নেই main। এছাড়াও, যদি আপনি কি দেখেন না কি আপনি প্রিন্ট, আপনি একটি প্রতিস্থাপন করতে পারেন ' 'সঙ্গে 0এবং দ্বিতীয় বাদ।
ugoren

17

পাইথন - 49 বাইট

ভেরিয়েবল xএবং বসানো দ্বারা ইনপুট ধরে y

from math import*
print log(log((e**e**x)**e**y))

এই 61 বাইট সমাধানটি একটি সম্পূর্ণ প্রোগ্রাম:

from math import*
print log(log((e**e**input())**e**input()))

আপনি ক্ষয়ক্ষতি নিষিদ্ধ করেন নি তা বিবেচনা করে, আমাকে এটি পোস্ট করতে হয়েছিল। আপনি লগারিদমের বৈশিষ্ট্য ব্যবহার করে অভিব্যক্তিটি সহজ করার সময় আপনি সহজভাবে পান print input() + input()

এটি উভয় নেতিবাচক এবং ভাসমান পয়েন্ট সংখ্যা সমর্থন করে।

দ্রষ্টব্য: আমি জিনিবলারের পরামর্শ অনুসরণ করে এই উত্তরটি তিনটি করে বিভক্ত করেছি। এটি গাণিতিক সমাধান এবং এটি টিআই-89 বেসিক সমাধান


আমি জাভাস্ক্রিপ্টের সাথে এর অনুরূপ কিছু করার চেষ্টা করছিলাম, তবে এটি সূত্রটি কী ছিল তা ভুলে গিয়েছিলাম কারণ এটি আমি গতবার দেখেছি এবং এটি সন্ধান করার জন্য ইন্টারনেটে অনুসন্ধান করছি some
ভিক্টর স্টাফুসা

4
@ ভিক্টর আমি নিজে থেকেই সূত্রটি তৈরি করেছি। আমি গণিত খুব স্পষ্ট মনে আছে।
জাস্টিন

1
আপনার গাণিতিক খুব নিকটে, আপনাকে কেবল অন্তর্নির্মিত চিহ্নগুলি মূলধন করতে হবে। লগ করুন [লগ করুন [(ই ^ ই ^ এক্স) ^ (ই ^ ই))] কাজ করে (২৩ টি অক্ষর বা ২২ আপনি যদি বাইরের ফাংশন মোড়ানোর জন্য @ স্বরলিপি ব্যবহার করেন)।
মাইকেল স্টার্ন

"যদি আমাকে x এবং y ভেরিয়েবলগুলিতে স্থান নির্ধারণের মাধ্যমে ইনপুট অনুমান করার অনুমতি দেওয়া হয় .." আমার মনে হয় আপনি করতে পারবেন - অন্যরাও তা করতে পারে।
blabla999

@ মিশেলস্টারন: চারপাশে প্রথম বন্ধনী এড়িয়ে আপনি আরও দুটি অক্ষর সংরক্ষণ করতে পারেন E^y। ব্যবহার Log[Log[(E^E^x)^E^y]]করা ভাল কাজ বলে মনে হচ্ছে।
অ্যালেক্সওয়ালঞ্চন

14

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

~eval([1,~x,~y].join(''))

1
আপনার উত্তরটি খারাপ দেখাচ্ছে (এবং ডাউনভোট-আকর্ষণীয়) তবে এটি আসলে একটি দুর্দান্ত উত্তর। ডাউনভোটগুলি থেকে মুক্তি পেতে এটি মুছুন এবং কিছু পাঠ্য ব্যাখ্যা করে পোস্ট করুন ost আমি আপনার নতুন উত্তর upvote হবে।
ভিক্টর স্টাফুসা

1
এখন এটি সত্যিই দুর্দান্ত দেখাচ্ছে, আমি এটি পছন্দ করি। অবশ্যই আরও upvotes মূল্য।
ভিজিওন

13

গণিত, 21 বাইট

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

Last@Accumulate@{a, b}

আরও মজা, যদিও এটি 45 টি অক্ষর, একটি লাইন সংজ্ঞায়িত করতে এবং এর অধীনে সংহত করতে সংখ্যাগুলি ব্যবহার করুন।

Integrate[Fit[{{0, a}, {2, b}}, {x, 1}, x], {x, 0, 2}]

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


2
আমি একীকরণ পছন্দ! (যদিও, কঠোরভাবে বলা এটি কিছু যোগ করে)। +1
blabla999

1 ম সমাধানটি অবৈধ। চ্যালেঞ্জটির লেখককে উদ্ধৃত করে: "অতিরিক্তভাবে, আপনি কোনও গণিত অপারেটরগুলি প্রতিস্থাপনের জন্য তৈরি কোনও বিল্ট-ইন ফাংশন ব্যবহার করতে পারবেন না "। আমি এই সমাধান দিয়েছিলেন: function _(){return array_sum(func_get_args());}। আমাকে এটিকে নেমে যেতে হয়েছিল কারণ এটির "সংশোধন" করার কোনও ছোট উপায় আমি খুঁজে পাইনি।
ইসমাইল মিগুয়েল

@ ইসমাইল মিগুয়েল জমা করা [] প্লাস প্রতিস্থাপনের জন্য ডিজাইন করা হয়নি। এটির ফলাফলগুলির মধ্যে সংখ্যার তালিকার যোগফল দেওয়ার ঘটনা ঘটে এবং আমি এর সদ্ব্যবহার করি।
মাইকেল স্টার্ন

কিন্তু এটি তালিকার সমস্ত উপাদানগুলির যোগফল তৈরি করে, তাই না? যদি এটি করে, আমার মতে, এটি array_sum()পিএইচপি ব্যবহার করার মতোই অবৈধ , যা একই সঠিক জিনিসটি করে।
ইসমাইল মিগুয়েল

3
@ ইসমাইল মিগুয়েলে একটি গাণিতিক ফাংশন রয়েছে যা একটি অ্যারের যোগফলকে মোট [মোট] বলে। আমি সম্মত হই যে এই ফাংশনটি ব্যবহারের জন্য নির্দিষ্ট হিসাবে এটি বিধিগুলির বিরুদ্ধে হবে, তবে আমি তা করি নি। জমা হওয়া [{a, b}] এর আউটপুট একটি + বি নয়।
মাইকেল স্টার্ন

12

গল্ফস্ক্রিপ্ট, 6 4 টি অক্ষর / বাইট

10, 5(=> 15) আকারে ইনপুট ।

~,+,

+অ্যারে সংযুক্তকরণের না ছাড়াও।

এটি কীভাবে কাজ করে তা ,হল দৈর্ঘ্যের অ্যারে তৈরি করতে ব্যবহৃত হয় যে সংখ্যাটি ( 0,1,...,n-2,n-1)। এটি উভয় সংখ্যার জন্য করা হয়, তারপরে অ্যারেগুলি সংক্ষিপ্ত করা হয়। ,ফলাফলের অ্যারের দৈর্ঘ্য সন্ধান করতে আবার একটি ভিন্ন উদ্দেশ্যে ব্যবহৃত হয়।

এখন, কৌশলটি এখানে । আমি সত্যিই এটি পছন্দ করি কারণ এটি ইনপুট ফর্ম্যাটটি অপব্যবহার করে। এটা তোলে দেখায় মত এটি শুধু একটি অ্যারের ইনপুট করার হচ্ছে, কিন্তু সত্যিই, যেহেতু ইনপুট GolfScript কোড হিসেবে মৃত্যুদন্ড কার্যকর করা হচ্ছে, প্রথম ,ইতিমধ্যে আমার জন্য সম্পন্ন করা হয়! (পুরানো 6-অক্ষরের সংস্করণটি ~,\,+,ইনপুট ফর্ম্যাট সহ ছিল 10 5, যা আমি \,(অদলবদল অ্যারে) মুছে ফেলে 2 টি অক্ষর শেভ করেছিলাম )।

পুরানো সংস্করণ (12) :

একটি ফাংশন তৈরি করে f

{n*\n*+,}:f;

*এবং +স্ট্রিং পুনরাবৃত্তি এবং সংযুক্তকরণের যথাক্রমে না গাণিতিক ফাংশন আছে।

ব্যাখ্যা: nএকটি এক-চরিত্রের স্ট্রিং তৈরি করে (একটি নতুন লাইন)। এটি আবার বারবার করা aহয়, তারপরে একই জিনিসটি করা হয় b। স্ট্রিংগুলি সংক্ষিপ্ত করা হয় এবং তারপরে ,স্ট্রিং দৈর্ঘ্যের জন্য ব্যবহৃত হয়।


এটি কি নেতিবাচক সংখ্যার জন্য কাজ করে?
মাইকেল স্টার্ন

@ মিশেলস্টারন না, তবে প্রশ্নটিতে এর আগে কখনও উল্লেখ করা হয়নি। হুম, আমি একটি মন্তব্য যুক্ত করেছি। অন্যান্য উত্তরগুলির বেশিরভাগ (প্রকৃতপক্ষে, সমস্ত )ও ইতিবাচক ধারনা করে।
Doorknob

আমার গাণিতিক সমাধান দেখুন। সঠিক ভাষায়, negativeণাত্মক সংখ্যার জন্য সমাধানগুলি সম্ভব।
মাইকেল স্টার্ন

সমস্ত জায়গার এই সাইটে @ মিশেলস্টারন এলওএল @ "সঠিক ভাষা"…
টোবিয়া

10

সি, 29 27 বাইট

পয়েন্টার গাণিতিক ব্যবহার:

f(x,y)char*x;{return&x[y];}

x পয়েন্টার হিসাবে সংজ্ঞায়িত করা হয়, তবে কলারটিকে একটি পূর্ণসংখ্যা পাস করা উচিত।

একজন বেনাম ব্যবহারকারী নীচের পরামর্শ দিয়েছেন - ২ 27 বাইটও, তবে পরামিতিগুলি পূর্ণসংখ্যা:

f(x,y){return&x[(char*)y];}

প্রথম ফর্মটি সম্ভবত খারাপভাবে ভেঙে যায় যদি intএখন দুটি প্রচলিত সিস্টেমে int32 টি বিট থাকে এবং পয়েন্টারগুলিতে 64 বিট থাকে on দ্বিতীয়টি সেই সমস্যাটিকে এড়িয়ে চলে।
এইচডিভি

@hvd, উভয়ই কমপক্ষে লিনাক্স bit৪ বিটতে কাজ করে। পূর্ণসংখ্যা প্যারামিটারগুলি যাইহোক মেশিনের নিবন্ধ আকারে প্রসারিত করা হয়।
ugoren

আহ, যথেষ্ট ন্যায্য, সম্মত হয়েছেন যে এটি সম্ভবত সাধারণ ঘটনা। যদিও আমি একটি দৃ concrete় উদাহরণ পাই যা কার্যকর হয় না, তবে আবার মন্তব্য করবে। :)
এইচডিভি

8

ব্রেইনফ * সি কে, 9 36

,>,[-<+>]

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

এটি সাধারণ সংযোজন ব্যবহার না করে কাজ করে; এটি যায় এবং 1 এর একটি ট্রেইল দেয় এবং তারপরে সেগুলি গণনা করে

দ্রষ্টব্য: +এবং -কেবলমাত্র একক বৃদ্ধি এবং এগুলি ছাড়া ব্রেইনফ * সিকে তেমন কিছুই করা যায় না। এগুলি আসলে সংযোজন / বিয়োগ নয় তাই আমি বিশ্বাস করি এটি এখনও গণনা করে।


-1। এটি সাধারণ সংযোজন। আপনি যদি এমন কিছু করেন যা সংযোজন, গুণ, ইত্যাদি নয় তবে তা গণনা করা হয়, তবে যেমন হয়, এটি গণনা করে না।
জাস্টিন

@ কিউইচুনেক্স আমি এটি স্থির করেছি; আমি এটি সন্ধান করে এবং এটির একটি ট্রেইল রেখে এবং তারপরে
ঝাড়ফুঁক করে

3
বিপরীত। সুন্দর কাজ.
জাস্টিন

6

জে (6)

আপনি বলেননি আমরা স্যাক ফাংশনটি ব্যবহার করতে পারি না:

>:@[&0

ব্যবহার:

   9>:@[&0(8)
17

এটি >:8 - তে 9 টি পুনরাবৃত্তি করে।

তালিকা সংযুক্তকরণের পদ্ধতির কাজ করে, খুব: #@,&(#&0)। এবং - আমি জানি এটি বিধিগুলির বিপরীতে - সর্বাধিক জ-ইশ সমাধান না করে আমি এই উত্তরটি যেতে দিতে পারি না: *&.^(ক্ষয়ক্ষতির অধীনে গুণ)।


5

পোস্টস্ক্রিপ্ট, 41

আমরা দীর্ঘ হিসাবে 41 বাইট এক্সপ্রেশন সহ ফাংশন সংজ্ঞায়িত:

/a{0 moveto 0 rmoveto currentpoint pop}def

তারপরে আমরা একে কল করি যেমন:

gs -q -dBATCH -c '/a{0 moveto 0 rmoveto currentpoint pop}def' -c '10 15 a ='

যা দেয়

25.0

এটি সহজেই নেতিবাচক এবং ভাসমান পরিচালনা করে, বেশিরভাগ প্রতিযোগীদের থেকে ভিন্ন :-)



4

স্মার্টটাক (এখন সিরিয়াসলি), 123 118 105 (*)

দু'বার উত্তর দেওয়ার জন্য দুঃখিত, তবে এটিকে একটি গুরুতর উত্তর বিবেচনা করুন, অন্যদিকে উত্তরটি আরও হাস্যরসের মতো ছিল। নিম্নলিখিতটি আসলে আমাদের সমস্ত মেশিনে (যদিও হার্ডওয়্যারে) ঠিক ঠিক এই মুহুর্তে কার্যকর করা হয়। আশ্চর্যজনক যে এটি অন্য কারও মনে আসে নি ...

দুটি অর্ধ-সংযোজককে একত্রিত করে, এবং সমান্তরালভাবে শব্দের সমস্ত বিট করে, আমরা পঠনযোগ্য সংস্করণ পাই (ইনপুট এ, বি; আউটপুট গুলি)

  s := a bitXor: b.            
  c := (a & b)<<1.             

  [c ~= 0] whileTrue:[        
     cn := s & c.
     s := s bitXor: c.
     c := cn<<1.
     c := c & 16rFFFFFFFF.
     s := s & 16rFFFFFFFF.
  ].
  s           

লুপটি বহন প্রচারের জন্য। মুখোশগুলি নিশ্চিত করে যে স্বাক্ষরিত পূর্ণসংখ্যাগুলি পরিচালনা করা হয় (এগুলি ব্যতীত কেবল স্বাক্ষরযুক্ত সংখ্যাগুলি সম্ভব হয়)। তারা শব্দটির দৈর্ঘ্যও সংজ্ঞায়িত করে, উপরেরটি 32 বিট অপারেশনের জন্য। আপনি যদি 68 বিট সংযোজনটি পছন্দ করেন তবে 16rFFFFFFFFFFFFFFFFF এ পরিবর্তন করুন।

গল্ফ সংস্করণ (123 অক্ষর) (মিটার পুনরায় ব্যবহার করে দীর্ঘ মুখোশ এড়ানো):

[:a :b||s c n m|s:=a bitXor:b.c:=(a&b)<<1.[c~=0]whileTrue:[n:=s&c.s:=s bitXor:c.c:=n<<1.c:=c&m:=16rFFFFFFFF.s:=s&m].s]

(*) ১r আরএফএফএফএফএফএফএফএফএফ-এর পরিবর্তে -১ ব্যবহার করে আমরা আরও ভাল গল্ফ করতে পারি, তবে কোডটি আর স্বেচ্ছাচারিত নির্ভুলতার সংখ্যার জন্য কাজ করে না, কেবল মেশিন-ওয়ার্ড আকারের ছোট-ইন্টিজারদের জন্য (বৃহত্তর-ইন্টিজারদের জন্য উপস্থাপনাটি আনসি স্ট্যান্ডার্ডে সংজ্ঞায়িত করা হয়নি):

[:a :b||s c n|s:=a bitXor:b.c:=(a&b)<<1.[c~=0]whileTrue:[n:=s&c.s:=s bitXor:c.c:=n<<1.c:=c&-1.s:=s&-1].s]

এটি কোডের আকারকে 105 টি অক্ষরে নামায়।


এটি কোড-গল্ফ, সুতরাং আপনার উত্তরটি গল্ফ করুন।
ভিক্টর স্টাফুসা

1
জয়ের কোন সুযোগ নেই, তবে আমি এটি আপনার জন্য করব ;-)
blabla999

একটা ছোট্ট উত্তর দেখে ভাল লাগল!
টুথব্রাশ

4

এপিএল, 8 এবং 12

এখানে নতুন কিছু নয়, অ্যারে গণনা সংস্করণ:

{≢∊⍳¨⍺⍵}

এবং লগ-লগ সংস্করণ:

{⍟⍟(**⍺)**⍵}

আমি কেবল ভেবেছিলাম এপিএলে তারা দুর্দান্ত দেখাচ্ছে!

{≢     }       count
  ∊            all the elements in
   ⍳¨          the (two) sequences of naturals from 1 up to
     ⍺⍵        both arguments

 

{⍟⍟        }   the double logarithm of
   (**⍺)       the double exponential of ⍺
        *      raised to
         *⍵    the exponential of ⍵

2
নিখরচায় বললে, এপিএলে সবকিছু দুর্দান্ত দেখাচ্ছে।
মাইকেল স্টারন

আপনি প্রথমটির জন্য 5 ≢∘∊⍳¨
টির

@ অ্যাডম হ্যাঁ, তবে আমি স্বচ্ছন্দ কার্যাদি পছন্দ করি না এবং এগুলি পড়তে আমার অসুবিধা হয়।
টোবিয়া

@ टोবিয়া সম্ভবত আপনি তাদের পছন্দ করেন না কারণ আপনি তাদের পড়তে অসুবিধা করছেন? আমি তার উপর একটি কর্মশালা চালাচ্ছি … আপনি কি আমার পাঠটি দেখেছেন ?
অ্যাডাম

@ আদম দুর্দান্ত, ধন্যবাদ! এটি পরীক্ষা করে দেখবে।
টোবিয়া

4

সেড, 359 বাইট (অভিনব বিন্যাস ছাড়াই)

দেরী উত্তরটির জন্য দুঃখিত, এবং সম্ভবত এখন পর্যন্ত এখানে সবচেয়ে দীর্ঘ উত্তর। তবে আমি দেখতে চেয়েছিলাম যে সেড দিয়ে এটি সম্ভব কিনা:

                       s/([^ ]+) ([^ ]+)/\1:0::\2:/
                       :d /^([^:]+):\1::([^:]+):/tx
                       s/(:[^:]*)9([_:])/\1_\2/g;td
s/(:[^:]*)8(_*:)/\19\2/g;s/(:[^:]*)7(_*:)/\18\2/g;s/(:[^:]*)6(_*:)/\17\2/g
s/(:[^:]*)5(_*:)/\16\2/g;s/(:[^:]*)4(_*:)/\15\2/g;s/(:[^:]*)3(_*:)/\14\2/g
s/(:[^:]*)2(_*:)/\13\2/g;s/(:[^:]*)1(_*:)/\12\2/g;s/(:[^:]*)0(_*:)/\11\2/g
                       s/:(_+:)/:1\1/g; y/_/0/; # #
                       bd;  :x  s/.*::([^:]+):/\1/;
                       # # # # # # #  # # # # # # #

এটি https://codegolf.stackexchange.com/a/38087/11259 এর মতো , যা কেবল স্ট্রিংয়ে সংখ্যা বৃদ্ধি করে। তবে পরিবর্তে এটি একটি লুপে ইনক্রিমেন্ট অপারেশন করে।

"X y" আকারে এসটিডিএন থেকে ইনপুট নেওয়া হয়। এটি প্রথমে "x: 0 :: y:" এ রূপান্তরিত হয়েছে। তারপরে আমরা "x: x: :( x + y):" না পাওয়া পর্যন্ত ":" অক্ষরের পরে আসা সমস্ত সংখ্যা বৃদ্ধি করি। তারপরে আমরা শেষ পর্যন্ত (x + y) ফিরে আসি।

আউটপুট

$ printf "%s\n" "0 0" "0 1" "1 0" "9 999" "999 9" "12345 67890" "123 1000000000000000000000"  | sed -rf add.sed
0
1
1
1008
1008
80235
1000000000000000000123
$

নোট করুন যে এটি কেবল প্রাকৃতিক সংখ্যার জন্যই কাজ করে। তবে (তত্ত্বের ক্ষেত্রে অন্তত) এটি নির্বিচারে বৃহত পূর্ণসংখ্যার জন্য কাজ করে। যেহেতু আমরা y তে এক্স ইনক্রিমেন্ট অপারেশন করছি, অর্ডার করা গতিতে বড় পার্থক্য আনতে পারে: x <y এক্স x> y এর চেয়ে দ্রুত হবে।


4

ড্যাশ , 18 বাইট

time -f%e sleep $@

GNU সময় প্রয়োজন 1.7 বা তারও বেশি। আউটপুটটি এসটিডিআরআরে হয়।

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

নোট করুন যে এটি বি ছাইতে কাজ করবে না , কারণ এর বিল্টিন টাইম কমান্ডটি জিএনইউ সময়ের থেকে পৃথক।

অতিরিক্ত অতিরিক্ত বাইটের ব্যয়ে ব্যাশকে বাহ্যিক কমান্ড ব্যবহার করতে বাধ্য করার \timeপরিবর্তে ব্যবহার করা যেতে পারে time


ইনপুটগুলির একটিতে নেতিবাচক হলে কী হবে?
মাইকেল স্টার্ন

4
এটি ব্যর্থ হয়। ঠিক অন্য সমস্ত উত্তর মত।
ডেনিস

5
Drats! আশা করি প্রশ্ন জিজ্ঞাসার আগেই এটি ফলাফল দিয়েছে gave
টোবিয়া

3
হ্যাঁ। আমি উচ্চ প্রত্যাশায় ছিলাম যে এলোমেলো byোকানো sleep -3দিয়ে আমি আমার প্রোগ্রামগুলিকে গতিময় করতে পারি। কি এক নিচে।
Alfe

1
বাশ-এ @ ব্যবহারকারীর অজানা \timeকাজ করা উচিত।
ডেনিস

3

জাভাস্ক্রিপ্ট (67)

সম্ভবত আরও ভাল আছে

a=Array;p=Number;r=prompt;alert(a(p(r())).concat(a(p(r()))).length)

আপনার ভাসমান দরকার কিনা তা জেনে আপনার কোনও নির্দিষ্ট উত্তর দেওয়া উচিত নয়। এবং এটি NaN এর পরিচালনা করবে না। তবে এটি বেশ সুন্দর কোড!
ইসমাইল মিগুয়েল

আমি মনে করি সবগুলি joinsঅপ্রয়োজনীয়। Arrayকন্সট্রাকটর একটি অ্যারের তোলে undefineds: যা গণনা করা যেতে পারেa=Array;p=parseInt;r=prompt;alert(a(p(r())).concat(a(p(r()))).length)
বেন রেইচ

@ বেনরিচ, আপনি ঠিক বলেছেন, ধন্যবাদ
মাইকেল এম

@ মিশেল এছাড়াও, নির্মাতা Number2 টি অক্ষর সাশ্রয় করেছেনparseInt
বেন রিখ

@ মিশেল এছাড়াও, আপনি যদি অপসারণ করেন alertতবে আউটপুটটি এখনও কনসোলে চলে যাবে, তবে এটি উত্তরটি কিছুটা কম মজাদার করে তোলে। আপনি promptসতর্কতার পরিবর্তে চলকটি পুনরায় ব্যবহার করতে পারেন , (কনস্ট্রাক্টর প্রম্পটের সাহায্যে যুক্তিটি সতর্ক করে)। যাইহোক, সুন্দর উত্তর!
বেন রিখ

3

রুবি, ১৮ টি চর

a.times{b=b.next}

এবং আরও দুটি ভার্বোজের রূপ, 29 টি অক্ষর

[*1..a].concat([*1..b]).size

অন্য সংস্করণ, 32 অক্ষর

(''.rjust(a)<<''.rjust(b)).size

3

সি # - ফ্লাই কোড জেনারেশনে

হ্যাঁ, সেখানে আসলে একটি সংযোজন রয়েছে, তবে + অপারেটর নয় এবং এমন কোনও ফ্রেমওয়ার্ক ফাংশনও নেই যা সংযোজন করে না, পরিবর্তে আমরা ফ্লাইতে একটি পদ্ধতি তৈরি করি যা যুক্ত করে।

public static int Add(int i1, int i2)
{
    var dm = new DynamicMethod("add", typeof(int), new[] { typeof(int), typeof(int) });
    var ilg = dm.GetILGenerator();
    ilg.Emit(OpCodes.Ldarg_0);
    ilg.Emit(OpCodes.Ldarg_1);
    ilg.Emit(OpCodes.Add);
    ilg.Emit(OpCodes.Ret);
    var del = (Func<int, int, int>)dm.CreateDelegate(typeof(Func<int, int, int>));
    return del(i1, i2);
}


2

আর 36

function(x,y)length(rep(1:2,c(x,y)))

যেখানে দ্বিগুণ হওয়ার পরে repএকটি ভেক্টর তৈরি xকরে y


2
আপনি এমন একটি প্রোগ্রাম তৈরি করতে পারেন যা কিছুটা ছোট হয়ে যায়:length(rep(1:2,scan()))
মাসক্লিনস

2

টিআই বেসিক 89 - 19 বাইট

আপনার টিআই-89 (হোম স্ক্রিন বা প্রোগ্রামিং অ্যাপ্লিকেশন) এ এটি চালান:

ln(ln((e^e^x)^e^y))

এটি সমাধান হিসাবেx+y ঠিক যেমন গণনা করতে লগ বিধি ব্যবহার করে । বোনাস হিসাবে, এটি দশমিক এবং পূর্ণসংখ্যার সংখ্যাগুলির জন্য কাজ করে। এটি সমস্ত আসল সংখ্যার জন্য কাজ করে। যদি লগারিদম বিধিগুলি জটিল এক্সপোশনগুলির সাথে এখনও বৈধ হয়, তবে এটি জটিল সংখ্যার জন্যও কাজ করে। যাইহোক, আমি যখন জটিল উদ্দীপকগুলি sertোকানোর চেষ্টা করি তখন আমার ক্যালকুলেটরটি আবর্জনা ছাড়ায়।


3
নন lnTI তৈরি বেসিক 1 বাইট? এছাড়াও, আপনি বন্ধ করে বন্ধনীগুলি ড্রপ করতে পারেন, এটিকে 15 বাইটে নামিয়ে আনতে পারেন।
6uʎs

2

আমাকে ম্যাথমেটিকা ​​স্বরলিপি শেখানোর জন্য মাইকেল স্টারনকে ধন্যবাদ ।

গণিত - 21 20 বাইট

Log@Log[(E^E^x)^E^y]

এটি এই সমাধান হিসাবে একই পন্থা ব্যবহার করে , তবে এটি খাটো করার জন্য এটি ম্যাথমেটিকায় is এটি নেতিবাচক এবং ভাসমান পয়েন্ট সংখ্যাগুলির পাশাপাশি পূর্ণসংখ্যার জন্য xএবং এর জন্য কাজ করে y

লগ নিয়মের ফলন ব্যবহার করে অভিব্যক্তিটিকে সরল করা x+y, তবে এটি বৈধ কারণ এটি 4 টি বুনিয়াদি অপারেটরের মধ্যে নয়, ক্ষয়ক্ষতি ব্যবহার করে।


আপনি কি নিশ্চিত যে এটি জটিল সংখ্যার জন্য কাজ করে?
মাইকেল স্টার্ন

2

সি # - স্ট্রিং পাটিগণিত

আমরা উভয় সংখ্যাকে স্ট্রিংয়ে রূপান্তর করি, স্ট্রিং কাটিংয়ের সাথে সংযোজন করি (ক্যারি এবং সমস্ত কিছু সহ, আপনি জানেন), তারপরে পূর্ণসংখ্যায় পার্স করুন। I2, i2 এর সাথে 0..200 তে পরীক্ষিত, কবজির মতো কাজ করে। এই এক যোগ করুন!

public static int Add(int i1, int i2)
{
    var s1 = new string(i1.ToString().Reverse().ToArray());
    var s2 = new string(i2.ToString().Reverse().ToArray());
    var nums = "01234567890123456789";
    var c = '0';
    var ret = new StringBuilder();
    while (s1.Length > 0 || s2.Length > 0 || c != '0')
    {
        var c1 = s1.Length > 0 ? s1[0] : '0';
        var c2 = s2.Length > 0 ? s2[0] : '0';
        var s = nums;
        s = s.Substring(int.Parse(c1.ToString()));
        s = s.Substring(int.Parse(c2.ToString()));
        s = s.Substring(int.Parse(c.ToString()));
        ret.Append(s[0]);
        if (s1.Length > 0)
            s1 = s1.Substring(1);
        if (s2.Length > 0)
            s2 = s2.Substring(1);
        c = s.Length <= 10 ? '1' : '0';
    }
    return int.Parse(new string(ret.ToString().ToCharArray().Reverse().ToArray()));
}


2

পাইথন - 22 টি অক্ষর

len(range(x)+range(y))

1
আমি মনে করি যে যোগ হিসাবে গণনা?
TheDoctor

1
এটি সংক্ষিপ্তকরণ
পিডুদ


2

টিআই-বেসিক, 10

যোগ XএবংY

ln(ln(e^(e^(X))^e^(Y

1
কীভাবে সমাধানগুলি অনুলিপি করতে হবে তা আপনি নিশ্চিতভাবেই জানেন: কোডগল্ফ.স্ট্যাকেক্সেঞ্জাওটা
জাস্টিন

প্রথমত, এটি কাজ করে না কারণ এটি লগ ব্যবহার করে (এলএন এর পরিবর্তে (Second দ্বিতীয়ত, এটি আসলে দশটি বাইট যা ফর্মে ln (ln (e ^ (e ^ (X)))
written

2

কে, 2 বাইট

#&

ব্যবহারের উদাহরণ:

  #&7 212
219

&একটি ইনপুট তালিকার সংখ্যায় "যেখানে" অপারেটর (একজাতীয় ) প্রয়োগ করুন (সম্ভবত ইনপুট ফর্ম্যাট সহ স্বাধীনতা গ্রহণ করা)। এটি প্রথম সংখ্যাটি শূন্যের একটি তালিকা তৈরি করবে এবং তারপরে দ্বিতীয় সংখ্যাটি অনুসরণ করবে:

  &3 2
0 0 0 1 1

সাধারণত এই অপারেটরটি বুলিয়ান তালিকার ননজারো উপাদানগুলির সূচকগুলির তালিকা তৈরি করতে "সংগ্রহ" হিসাবে ব্যবহৃত হয়, তবে সাধারণ ফর্মটি মাঝে মাঝে কাজে আসে।

তারপরে কেবল সেই তালিকাটির গণনা নিন (একাকী #)।

যদি ইনপুট প্রয়োজনীয়তার আমার ব্যাখ্যাটি গ্রহণযোগ্য না হয় তবে নিম্নলিখিত সামান্য দীর্ঘ সমাধান একই কৌশল করে:

{#&x,y}

2

পাইথ , 29 বাইট

AQW!qG0=k.&GH=HxGH=k.<k1=Gk)H

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

আমার প্রথম জমা এখানে!

এটি সংকলন করে:

assign('Q',eval_input())     # Q
assign('[G,H]',Q)            #A
while Pnot(equal(G,0)):      #  W!qG0
  assign('k',bitand(G,H))    #       =k.&GH
  assign('H',index(G,H))     #             =HxGH  (index in this case is XOR)
  assign('k',leftshift(k,1)) #                  =k.<k1
  assign('G',k)              #                        =Gk)
imp_print(H)                 #                            H

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