কোনও + বা - চিহ্ন ব্যবহার না করে যুক্ত করা হচ্ছে


24

এর আগেও অনেকগুলি " _ __ _" ছাড়াই চ্যালেঞ্জ ছিল, তবে আমি আশা করি যে এটি অন্যতম চ্যালেঞ্জিং।

চ্যালেঞ্জ

আপনাকে এমন একটি প্রোগ্রাম লিখতে হবে যা STDIN থেকে দুটি প্রাকৃতিক সংখ্যা (পুরো সংখ্যা> 0) নেবে এবং দুটি সংখ্যার যোগফলকে STDOUT এ মুদ্রণ করবে। চ্যালেঞ্জটি হ'ল আপনাকে অবশ্যই যতটা সম্ভব কম চিহ্ন +এবং -চিহ্ন ব্যবহার করতে হবে । আপনাকে কোনও যোগফল বা অবহেলা ফাংশন ব্যবহার করার অনুমতি নেই।

উদাহরণ

ইনপুট

123
468

আউটপুট

591

ইনপুট

702
720

আউটপুট

1422

টাইব্রেকার: দুটি প্রোগ্রাম একই সংখ্যক থাকে +এবং -অক্ষর, বিজয়ী কম সঙ্গে ব্যক্তি / * ( ) = . ,এবং 0-9অক্ষর।

অনুমোদিত নয়: যে ভাষাগুলিতে স্ট্যান্ডার্ড সংযোজন / বিয়োগ এবং বৃদ্ধি / হ্রাস অপারেটরগুলি প্রতীক +বা -তার বাইরে অন্য কোনও চিহ্ন নয়। এর অর্থ হ'ল হোয়াইটস্পেসের ভাষা অনুমোদিত নয়।


1
সম্ভবত এই চ্যালেঞ্জটি আমার পক্ষে ভাবার চেয়ে অনেক সহজ ছিল, বিশেষত অন্যান্য ভাষাগুলিতে, যেখানে যোগফলগুলি () রয়েছে। আমি এটি ঠিক করতে হবে।
PhiNotPi

50
ব্রেইনফাক এ যে কেউ করতে পারে তার জন্য 100 রিপ্রেস অনুগ্রহ।
পিটার ওলসন

3
@ পিটার ওলসন ওয়েল, আমার ধারণা বিএফ হয় +বা না ছাড়াই সম্পূর্ণ -
নিরাময় করবে না

3
কেবল পরিষ্কার করতে, এই চ্যালেঞ্জটি কোডের দৈর্ঘ্য সম্পর্কে সঠিকভাবে চিন্তা করে না? শুধুমাত্র সংখ্যক +, -এবং টাই ব্রেকার অক্ষর? ... বা আপনার কি আবার নিয়মগুলি পরিবর্তন করতে হবে :-)
টমি

@ টমি না, এটি হয় না।
ফিনোটপিপি

উত্তর:


29

পার্ল (কোন +/-, টাই-ব্রেকার নয়, 29 টি অক্ষর)

s!!xx!;s!x!$"x<>!eg;say y!!!c

বোনাস হিসাবে, আপনি কোডে আরও বেশি সংখ্যার যোগ করে কোডকে দুটি সংখ্যার বেশি xকরতে পারেন s!!xx!

বিকল্পভাবে, এখানে যথাক্রমে 1 এবং 3 টাই-ব্রেকারগুলির সাথে দুটি 21-চর সমাধান রয়েছে

say length$"x<>.$"x<>

say log exp(<>)*exp<>

দ্রষ্টব্য: এই সমাধানগুলি sayফাংশনটি ব্যবহার করে যা পার্ল ৫.১০.০ থেকে -Eকমান্ড লাইন সুইচ সহ বা এর সাথে উপলভ্য use 5.010। পুরানো পার্লগুলিতে কাজ করে এমন সংস্করণগুলির জন্য এই উত্তরের সম্পাদনার ইতিহাস দেখুন ।


টাই-ব্রেকারগুলির সাথে সমাধান কীভাবে কাজ করে?

  • s!!xx!হ'ল একটি রেজিএক্সপ্লেস রিপ্লেসমেন্ট অপারেটর , $_ভেরিয়েবলের ডিফল্টরূপে অপারেটিং , যা খালি স্ট্রিংটিকে স্ট্রিংয়ের সাথে প্রতিস্থাপন করে xx। (সাধারণত /পার্ল মধ্যে regexp বিভেদক হিসাবে ব্যবহার করা হয়, কিন্তু সত্যিই প্রায় কোনো চরিত্র ব্যবহার করা যেতে পারে আমি বেছে নেওয়া হয়েছে। !এটি একটি টাইব্রেকারে না যেহেতু।) এই prepending শুধু একটি অভিনব উপায় "xx"করার $_- বা, যেহেতু $_আউট খালি শুরু হয়েছে (অনির্ধারিত, আসলে), এটি $_ = "xx"সমান চিহ্নটি ব্যবহার না করেই লেখার সত্যিই একটি উপায় (এবং একটি অক্ষরও কম) less

  • s!x!$"x<>!egঅন্য regexp প্রতিস্থাপন, এই সময় প্রতিটি প্রতিস্থাপন হয় xমধ্যে $_মত প্রকাশের মান $" x <>। ( gসুইচটি বিশ্বব্যাপী প্রতিস্থাপন eনির্দিষ্ট করে , উল্লেখ করে যে প্রতিস্থাপনটি আক্ষরিক স্ট্রিং হিসাবে ব্যবহার করার পরিবর্তে পার্ল কোড হিসাবে মূল্যায়ন করতে হবে)) $"একটি বিশেষ ভেরিয়েবল যার ডিফল্ট মানটি একক স্থান হিসাবে ঘটে; পরিবর্তে এটি ব্যবহার " "করে একটি চর সাশ্রয় হয়। (এক-চরিত্রের মান হিসাবে পরিচিত অন্য যে কোনও ভেরিয়েবল, যেমন $&বা $/, এখানে সমানভাবে কাজ করবে, ব্যতীত এটি ব্যবহার করে $/আমার জন্য টাই-ব্রেকার লাগবে))

    <> লাইন ইনপুট অপারেটর , স্কালে প্রসঙ্গে, মান ইনপুট এবং এটা আয় থেকে এক লাইন পড়ে। xআগে এটি পার্ল হয় স্ট্রিং পুনরাবৃত্তি অপারেটর , এবং সত্যিই এই সমাধান কোর: এটি ফেরৎ তার বাম প্রতীক (ক একক স্থান চরিত্র) তার ডান প্রতীক কর্তৃক প্রদত্ত যতবার পুনরাবৃত্তি (লাইন আমরা শুধু ইনপুট হিসাবে পড়ুন)।

  • y!!!cস্ট্রিং-এর অক্ষরগুলি গণনা করার জন্য লিপ্যন্তর অপারেটরটি ব্যবহার করার জন্য (আব) কেবল একটি অস্পষ্ট উপায় $_default আমি স্রেফ লিখতে পারতাম say length, তবে অপ্রকাশিত সংস্করণটি একটি চরিত্রের চেয়ে ছোট। :)


3
+1 - অসাধারণ এবং সম্পূর্ণ অপঠনযোগ্য ;-) চরিত্রের গণনা এই চ্যালেঞ্জের ক্ষেত্রে গুরুত্বপূর্ণ নয় বলে এটি সঠিক উত্তর বলে মনে হচ্ছে।
টমি

@ টমি, অন্যান্য নিখুঁত উত্তরও আছে। হতে পারে আমাদের চূড়ান্ত টাইব্রেকার হওয়ার জন্য চরিত্র গণনার জন্য চাপ দেওয়া উচিত।
পিটার টেলর

@ পিটার: আমি ধরণের অনুমান করেছিলাম এটি ডিফল্টরূপে এটি ইতিমধ্যে ছিল।
ইলমারি করোনেন

1
যদি চরিত্র গণনাটি চূড়ান্ত টাই ব্রেকার হয়, এবং অন্যান্য বিভাগগুলিতে অনেকগুলি শূন্যের জন্য আবদ্ধ থাকে তবে এটি কি code-golfকিছু উত্স বিধিনিষেধের সাথে পরিণত হয় না ?
স্পার

47

আর (24 টি অক্ষর)

length(sequence(scan()))

এটি কী করে:

  • scan STDIN (অথবা একটি ফাইল) থেকে ইনপুট পড়ে
  • sequence1 থেকে শুরু করে পূর্ণসংখ্যার সিকোয়েন্স তৈরি করে এবং ক্রমগুলি সংযুক্ত করে। উদাহরণস্বরূপ, sequence(c(2, 3))ভেক্টর ফলাফল1 2 1 2 3
  • length সংক্ষিপ্ত ভেক্টরের উপাদানগুলির সংখ্যা গণনা করে

উদাহরণ 1:

> length(sequence(scan()))
1: 123
2: 468
3:
Read 2 items
[1] 591

উদাহরণ 2:

> length(sequence(scan()))
1: 702
2: 720
3:
Read 2 items
[1] 1422

1
খুব চালাক, ভাল কাজ।
ম্যাথু 21

এটি আমার মনকে
উড়িয়ে দেয়

+/- এবং উপরে উল্লিখিত টাই-ব্রেকারগুলি চরিত্র নয়, আকর্ষণীয়।
ব্যবহারকারী অজানা

এটি দৈর্ঘ্য গণনা করে কীভাবে? কোন সংযোজন ব্যবহার না করে? যদি তা হয় তবে আমি অবাক হব।
টেম পোরা

2
@ টিমপোরা প্রশ্নটি উত্তরের কোডগুলিকে কেবল সীমাবদ্ধ করে, পর্দার আড়ালে করা অপারেশনগুলি নয়। আমরা প্রশ্নটি সীমাবদ্ধ রাখছি না যাতে অন্তর্নিহিত কম্পিউটার আর্কিটেকচারটি কোনও নিবন্ধককে বাড়িয়ে তুলতে পারে না।
mbomb007

15

ডি

main(){
    int a,b;
    readf("%d %d",&a,&b);
    while(b){a^=b;b=((a^b)&b)<<1;}
    write(a);
}

জয়ের জন্য বিড়ম্বনা

বোনাস হিসাবে সংকলিত কোডটিতে অ্যাড অপারেশন থাকে না (যদিও রিডফ কলের জন্য কথা বলতে পারে না)


12

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

print len('%s%s'%(input()*'?',input()*'!'))

3
অত্যন্ত উদ্ভাবনামূলক, তবে আপনি স্ট্রিংয়ে ব্যবহৃত চরিত্রটিকে টাই-ব্রেকার যেমন "~" ছাড়া অন্য কোনও কিছুতে পরিবর্তন করতে চান
ডি ব্লবুনগুলি

অ্যালেক্সের পরামর্শের জন্য ধন্যবাদ, আমি টাই-ব্রেকার বিধি সম্পর্কে ইতিমধ্যে ভুলে গিয়েছিলাম।
ওমর

print sum(input(),input())
razpeitia

9
রাজপিটিয়া: আমি মনে করি যোগফল একটি "যোগফলের মতো" ফাংশন এবং সুতরাং এটি অনুমোদিত নয়।
ওমর

6

GolfScript

না +/- বা টাই-ব্রেকার:

# Twiddle some bits to get a few small integers
[]!~abs:two~abs:three!:zero~:minusone;

~[two base minusone%\two base minusone%]zip
zero:c;
{
    # Stack holds [x y] or [x] with implicit y is zero
    # Half adder using x y c: want to end up with sum on stack and carry back in c
    [~c zero]three<zero$
    ~^^\
    $~;:c;;
}%
[~c]minusone%two base

দুটি টাই-ব্রেকার অক্ষর সহ অনেকগুলি সহজ সংস্করণ, একই তালিকা-যুক্তিযুক্ত কৌশলটি ব্যবহার করে যা অন্যান্য লোকেরা ব্যবহার করে:

~[\]{,~}%,

আমি ধরে নিচ্ছি যে গল্ফস্ক্রিপ্ট )বর্ধিত অপারেটর হিসাবে থাকার জন্য অযোগ্য নয় , কারণ আমি আসলে এটি ব্যবহার করছি না।


6

সি (শুধুমাত্র 32 বিট)

int main(int ac, char *av) {
    scanf("%d\n%d", &ac, &av);
    return printf("%d\n", &av[ac]);
}

পয়েন্টার গাণিতিক ঠিক তত ভাল।
এটি কীভাবে প্রয়োজনীয়তার সাথে মেলে?
* কোন +বা -
* কোন /, =, ., 0- 9
* যা আমাকে ন্যূনতম (আপনার যা দরকার বলে মনে হয় প্রথম বন্ধনী মাত্র 3 জোড়া main, scanf, printf)।
* একটি *(পয়েন্টার পদ্ধতির এটির প্রয়োজন)।
* চারটি ,(সাধারণ ভেরিয়েবল সংজ্ঞায়িত করে একটি সংরক্ষণ করতে পারে, না ac,av)


6

সি ++ 0 +/-, 3 টাই-ব্রেকার

#include <vector>
#include <iostream>

#define WAX (
#define WANE )
#define SPOT .

int main WAX WANE {
    unsigned x;
    unsigned y;
    std::cin >> x >> y;
    std::vector<int> v WAX x WANE;
    std::vector<int> u WAX y WANE;
    for WAX auto n : u WANE {
        v SPOT push_back WAX n WANE;
    }
    std::cout << v SPOT size WAX WANE;
}

5

হাস্কেল, 0 + 2

import Monad
main = join $ fmap print $ fmap length $ fmap f $ fmap lines getContents
f x = join $ flip replicate [] `fmap` fmap read x

এটি কোনও +বা -অক্ষর ব্যবহার করে এবং =টাই ব্রেকার চরিত্রের সেট থেকে কেবল দুটি , যার মধ্যে একটি বাধ্যতামূলক জন্য বাধ্যতামূলক main। যোগফল যথাযথ দৈর্ঘ্যের তালিকাকে সম্মতি দিয়ে সম্পন্ন করা হয়।


4

সম্পাদনা করুন নিয়ম পরিবর্তন করার অনুমতি না দেওয়ার আগে এটি পোস্ট করা হয়েছিলsum ...

আর ভাষা: +বা কল নেই -... এবং 9 টি টাই-ব্রেকার অক্ষর!

sum(as.numeric(readLines(n=2)))

উদাহরণ:

> sum(as.numeric(readLines(n=2)))
123
456
[1] 579

[1] 579উত্তর 579 (হয়[1] যেখানে ফলাফলের ভেক্টর আপনার যেহেতু আর সমস্ত মান ভেক্টর হয় ট্র্যাক রাখতে হয় - দৈর্ঘ্য 1 এই ক্ষেত্রে)

নোট করুন যে আর এর +বেশিরভাগ ভাষার মতো অপারেটর রয়েছে - এটি ঠিক তাই ঘটে যে এটির sumখুব বেশি ভেক্টর রয়েছে।

এক্ষেত্রে, readLines দৈর্ঘ্যের ২ টি স্ট্রিং ভেক্টরকে ফেরত দেয় আমি তারপরে এটি সংখ্যার (দ্বিগুণ) করতে বাধ্য করি এবং এটির যোগফল দিয়েছি ...

কেবল আর এর অন্যান্য কিছু বৈশিষ্ট্যগুলি দেখানোর জন্য:

> 11:20 # Generate a sequence
 [1] 11 12 13 14 15 16 17 18 19 20

> sum(1:10, 101:110, pi)
[1] 1113.142

1
আমাকে তৈরি করার জন্য +1 এর যোগফল () ফাংশনটিকে অবৈধ করার জন্য নিয়মগুলি পরিবর্তন করতে হবে।
PhiNotPi

@ ফিলনটপি - বিধি পরিবর্তন করছেন ?! এটাই প্রতারণা! :-) ... তবে আপনার সম্ভবত বলা উচিত "যোগফলের মতো ফাংশন" বা আমি কেবল colSumsপরিবর্তে ব্যবহার করব ... সম্ভবত এটি "অবহেলার মতো ফাংশনগুলি "ও নিষিদ্ধ করব ...
টমি

2
আমি আপনার পরামর্শ নিতে যাচ্ছি। আমি যা বলতে পারি তা থেকে, এই সাইটের প্রত্যেকে (আমাকে সহ) বিধিগুলির ফাঁকে ফাঁকে নির্দেশ করতে পছন্দ করে।
PhiNotPi

4

আর ভাষা

নতুন নিয়ম, নতুন উত্তর, একই ভাষা। +বা কল নেই-

আপডেট ব্যবহার করে scan, এটি 11 টাই-ব্রেকার অক্ষরগুলিতে নেমে আসে (এবং সমস্ত ক্ষেত্রে 27 টি অক্ষর)।

as.numeric(scan())%*%c(1,1)

আসল: ১৩ টি টাই-ব্রেকার চরিত্র!

as.numeric(readLines(n=2)) %*% c(1,1)

উদাহরণ:

> as.numeric(readLines(n=2)) %*% c(1,1)
123
456
     [,1]
[1,]  579

এবার ফলাফলটি ম্যাট্রিক্সের গুণ দ্বারা অর্জিত হয়েছে। উত্তরটি 1x1 ম্যাট্রিক্স হিসাবে প্রদর্শিত হবে।


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

+1 দুর্দান্ত। আপনি এর scan()পরিবর্তে এটিকে আরও খাটো করতে পারেনreadlines(n=2)
অ্যান্ড্রি

@ অ্যান্ড্রি - হ্যাঁ, তবে তারপরে আপনি ঠিক দু'টি সংখ্যার প্রবিষ্টকারীর উপর নির্ভর করছেন ... আমার ধারণা এই চ্যালেঞ্জটির জন্য কোনটি ঠিক আছে ...
টমি

4

হাস্কেল, 0 +/ -, 6 2 টাই-ব্রেকার ( =)

(স্ট্রিং / তালিকার একচেটিয়া কৌশল ব্যবহার করে না)

main = interact f
f x = show $ log $ product $ map exp $ map read $ lines x

আপনি অতিরিক্ত বিন্দুতে সমস্ত বিন্দুগুলি মুছে ফেলতে পারেন = কম্পোজিশনটি প্রতিস্থাপন করে: "fgh" লেখার পরিবর্তে a যেখানে ax = f $ g $ h x "
ওমর

3

জাভাস্ক্রিপ্ট, 56

p=prompt;alert(Array(~~p()).concat(Array(~~p())).length)

J টিপটিতে জিমিনপকে ধন্যবাদ! আমি কমপক্ষে বাইটের জন্য যাচ্ছি, সুতরাং পি = প্রম্পটে 1 বাইট সাশ্রয় করছে; এখনও এটি মূল্য। আমি টাই-ব্রেকার চর সম্পর্কে আপনার যুক্তিটি বুঝতে পারি, তবে সত্যি বলতে কী আপনি কমপক্ষে বাইট করবেন না :-p

সংস্করণ, 69

i=parseInt;p=prompt;alert(Array(i(p())).concat(Array(i(p()))).length)

@ ইলমারী এবং @ জিমিনপি-র কিছু প্রতিক্রিয়ায় ধন্যবাদ, আমি আমার আসল সমাধানটি বন্ধ করে 13 বাইট তৈরি করেছি।

মূলত, 82

i=parseInt;p=prompt;a=Array(i(p()));a.push.apply(a, Array(i(p())));alert(a.length)

কমা পরে যে স্থান সম্পূর্ণ অপ্রয়োজনীয়; এটি সরিয়ে আপনি 81 এ নেমে যান
ইলমারি করোনেন

ব্যবহার concatএবং গণনা মধ্যে রাখার alertসংক্ষিপ্ত। i=parseInt;p=prompt;alert(Array(i(p())).concat(Array(i(p()))).length) বিটিডাব্লু, আমি জানতাম না যে Array(n)দৈর্ঘ্য সহ একটি অ্যারে দেয় n। গুগল ক্রোম কনসোল আমাকে দিয়েছে []এবং আমি ভেবেছিলাম কিছুই নেই ...
জিমিনপি

1
ওহ, যেহেতু গুরুত্বপূর্ণ জিনিসটি টাই-ব্রেকার চরিত্রগুলি p=promptতাই ভাল নয়। এবং, parseInt(x)প্রায় সমতুল্য ~~xalert(Array(~~prompt())['concat'](Array(~~prompt()))['length'])(12 টি টাই ব্রেকার চর) পিএস। আমি এটিকে আমার প্রবেশ হিসাবে ব্যবহার করতে পারি, তবে এটি আমাকে চুরির অনুভূতি দেয়।
জিমিনপি


3

এপিএল (কোন +/-, টাই ব্রেক ব্রেকার নয়, 8 বা 10 টি অক্ষর)

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

কোড:

⍴⊃⍪⌿⍳¨⎕⎕

ডান থেকে বাম:

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

আমাদের যদি ফলাফলটি স্পষ্টভাবে আউটপুট করতে হয় তবে আমরা এটির মতো এটি করতে পারি:

⎕←⍴⊃⍪⌿⍳¨⎕⎕

তুলনীয় পাইথন কোড, উপরে সম্পর্কিত এপিএল প্রতীকগুলির সাথে:

import operator

⎕←     ⍴    ⌿        ⍪                 ¨              ⍳                ⎕        ⎕         ⊃
print (len (reduce (operator.__add__, [map (lambda n: range (1, n+1), [input(), input()])][0])))

আমি একটি সংক্ষিপ্ত APL সম্ভব সংস্করণ আছে কিনা জানতে চাই - অন্য, সহজতর সংস্করণ আমি এসেছেন যে সঙ্গে আরো টাই ভঙ্গকারী হয়েছে (যদিও 8 টি অক্ষর এখনও) হল: ⍴(⍳⎕),⍳⎕


আপনার সূচক জেনারেটরটি 1 বা 0 থেকে শুরু হয়?
মিঃজান্ডার

3

আমি কাউকে এটি বৈদ্যুতিক প্রকৌশল পদ্ধতিতে করতে দেখিনি, সুতরাং আমার গ্রহণ (রুবিতে) এখানে:

def please_sum(a, b)
    return (a&b !=0)? please_sum( ((a&b)<<1) , a^b ):a^b
end

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

100.times do
    a=rand 10
    b=rand 10
    c=please_sum(a,b)
    puts "#{a}+#{b}=#{c}"
    end

চিয়ার্স!



2

শেল, 52

read a
read b
(seq 1 $a;seq 1 $b)|wc|awk '{print$1}'

এটি মূলত একই উত্তর আমি অন্য সমস্যার জন্য দিয়েছি।


অনুরূপ: xargs -n1 jot | wc -lযা একই -হ্রাস নেয় awkতবে আমি কীভাবে এড়াতে পারি তা দেখতে পাচ্ছি নাxargs
বেন জ্যাকসন

+/- এবং উপরে উল্লিখিত টাই-ব্রেকারগুলি চরিত্র নয়, আকর্ষণীয়।
ব্যবহারকারী অজানা


2

সি শার্প

এটি কোনও প্রসারিত দ্বারা সংক্ষিপ্ততম নয়:

private static int getIntFromBitArray(BitArray bitArray)
{
    int[] array = new int[1];
    bitArray.CopyTo(array, 0);
    return array[0];
}

private static BitArray getBitArrayFromInt32(Int32 a)
{
    byte[] bytes = BitConverter.GetBytes(a);
    return new BitArray(bytes);
}

static void Main(string[] args)
{
    BitArray first = getBitArrayFromInt32(int.Parse(Console.ReadLine()));
    BitArray second = getBitArrayFromInt32(int.Parse(Console.ReadLine()));
    BitArray result = new BitArray(32);

    bool carry = false;
    for (int i = 0; i < result.Length; i++)
    {
        if (first[i] && second[i] && carry)
        {
            result[i] = true;
        }
        else if (first[i] && second[i])
        {
            result[i] = false;
            carry = true;
        }
        else if (carry && (first[i] || second[i]))
        {
            result[i] = false;
            carry = true;
        }
        else
        {
            result[i] = carry || first[i] || second[i];
            carry = false;
        }
    }
    Console.WriteLine(getIntFromBitArray(result));
}

এটা ক্লান্তিকর, ম্যাথু।
ক্যারি সোভেল্যান্ড

2

জে, 15 7 টি চর, 1 টাই ব্রেকার, অসম্পূর্ণ প্রোগ্রাম

এটি আমার জে প্রচেষ্টা। এটি একটি সম্পূর্ণ প্রোগ্রাম নয়, কারণ আমি কীভাবে কীভাবে লিখব তা এখনও বের করতে পারি নি। ক্রিয়াকলাপটি পেতে একটি স্ক্রিপ্টে কেবল সেই লাইনটি রাখুন যা pসংখ্যার একটি স্বেচ্ছাসেবী সংখ্যার যোগ করতে ব্যবহৃত হতে পারে। এটি একটি মোনাড এবং সংখ্যার একটি তালিকা যুক্ত করে (যেমন p 1 2 3 4):

p=:#@#~

ধারণাটি খুব সাধারণ। ফাংশনটি ট্যাসিট ওরফে অর্থহীন স্টাইলে লেখা হয়েছে। এখানে একটি নির্দেশিত সংজ্ঞা:

p=:3 :'##~y'

ডান থেকে বামে পড়ুন। সারণী সংস্করণে, @ফাংশনের অংশগুলি রচনা করে। (গণিতে একটি like এর মতো [(ফগ) (এক্স) = চ (জি (এক্স)])

  • yএর প্যারামিটার p
  • ~একটি ক্রিয়া প্রতিবিম্বিত করে তোলে। কিছু ক্রিয়া জন্য m, m~ aসমান a m a
  • #(কপি a#b): প্রতিটি উপাদান aপ্রতিলিপি করা হয় iবার, যেখানে iবর্তমান উপাদান হিসাবে একই সূচিতে উপাদান aএর b। সুতরাং, #~একটি আইটেম n nবার প্রতিলিপি ।
  • #(গণনা, #b): উপাদানগুলির সংখ্যা গণনা করে b

উপসংহার: জে পার্লের চেয়ে দুর্দান্ত এবং কম পঠনযোগ্য (এটি এটিকে আরও সুদৃ makes় করে তোলে)

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

  • 15 -> 7 এর #পরিবর্তে ব্যবহার করা i.। হ্যাঁ! গল্ফস্ক্রিপ্টের চেয়ে কম অক্ষর।

একটি প্রোগ্রাম আরও

এটি ইনপুটটির জন্য একটি প্রশ্ন, তবে এটি এখনও সম্পূর্ণ প্রোগ্রাম নয়: (১৩ টি চর, ৩ টি ব্রেকার)

##~".1!:1<#a:

জে অবশ্যই স্পষ্টভাবে দুর্দান্ত, তবে বিশ্বাস করুন, আপনি যখন সমস্যার সাথে চ্যালেঞ্জগুলি সমাধান করেন তখন সমস্যার পার্সিং অংশটি ছেড়ে দিতে পারবেন না ;-)
জেবি

@ জেবি, ভাল, আপনি জে বিল্টিন ফাংশনটি ব্যবহার করতে পারেন, তবে আমি ডোমেনে ত্রুটি পেতে থাকি।
FUZxxl

2

জাভাস্ক্রিপ্ট (১ tie টি টাই-ব্রেকার অক্ষর)

eval('걢갽거걲걯걭거건갨걡갽거걲걯걭거건갨걹갽걦걵걮걣건걩걯걮갨걡갩걻걣갽걮걥걷갠걕걩걮건갸걁걲걲걡걹갨걡갩갻걦걯걲갨걩갠걩걮갠걣갩걩걦갨걩갽갽걾걾걩갩걸갮거걵걳걨갨갱갩걽갬걸갽걛걝갩갩갻걹갨걡갩갻걹갨걢갩갻걡걬걥걲건갨걸갮걬걥걮걧건걨갩갻'['split']('')['map'](function(_){return String['fromCharCode'](_['charCodeAt'](~~[])^0xac00)})['join'](''))

: পি (টাইব্রেকার চরিত্রের সংখ্যা হ্রাস করতে "অবিচ্ছিন্ন" Intern অভ্যন্তরীণভাবে, এটি b=prompt(a=prompt(y=function(a){c=new Uint8Array(a);for(i in c)if(i==~~i)x.push(1)},x=[]));y(a);y(b);alert(x.length); ))


2

সি #,

প্রোগ্রাম 1 লাইনে কাজ করে; অনুভূমিক স্ক্রোলিং এড়ানোর জন্য একাধিক লাইনে বিভক্ত।

using C=System.Console;
class A{
static void Main(){
int a,b,x,y;
a=int.Parse(C.ReadLine());
b=int.Parse(C.ReadLine());
do{x=a&b;y=a^b;a=x<<1;b=y;}while(x>0);
C.WriteLine(y);
}}

1

ক্লোজার (44 টি চর)

(pr(#(count(concat(%)(%)))#(repeat(read)0)))

সম্পাদনা: কেবলমাত্র যোগফলের পরিবর্তে STDOUT এ মুদ্রণের জন্য স্থির।


+/- এবং উপরে উল্লিখিত টাই-ব্রেকারগুলি চরিত্র নয়, আকর্ষণীয়।
ব্যবহারকারী অজানা

1

scala

  • স্কোর:
    • + -: 0
    • ()। : 5 + 5 + 3 = 13

কোড:

(List.fill (readInt) (1) ::: List.fill (readInt) (2)).size
  • তালিকা.ফিল (4) (7) উত্পাদন তালিকা তৈরি করে (7, 7, 7, 7)
  • a ::: b দুটি তালিকাকে একটিতে সম্মতি জানায়
  • বাকিগুলি সুস্পষ্ট হওয়া উচিত

1

কে, 11

{#,[!x;!y]}

আর সমাধান হিসাবে একই কনক্রিটেশন কৌশল। ডান থেকে বামে পড়া: দুটি ইনপুট ভেরিয়েবল গণনা করুন, একত্রে এবং তারপরে গণনা করুন।


1

পাওয়ারশেল , 27 42 বাইট, 0 +-, 4 1 মাধ্যমিক

একটি +এবং 4 সেকেন্ডারি সঞ্চয় করার জন্য মজিকে ধন্যবাদ

$args|%{[int[]]$_*$_}|measure|select count

এটি অনলাইন চেষ্টা করুন! বা অতিরিক্ত 3 বাইটের জন্য সুন্দর টেবিল

-আর- 19 বাইট সংরক্ষণ করতে চার সেকেন্ডারি যুক্ত করুন:

32 23 বাইট, 1 0 +-, 12 5 সেকেন্ডারি

মাইজিকে ধন্যবাদ -9 বাইটস

($args|%{,$_*$_}).count

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

প্রতিটি যুক্তির জন্য, আমরা পাইপলাইনগুলিতে nঅ্যারে উপাদানগুলি সমন্বিত করি ( [n]তবে এটি গুরুত্বপূর্ণ নয়) যা প্যারেন্স দ্বারা গোষ্ঠীভুক্ত করা হয় এবং তারপরে গণনা করা হয়।



1
আমি দুঃখিত, এটি কোডগল্ফ নয়। 0 + -, 3 সেকেন্ডারি, 27 বাইট
মেজি

1
@ ম্যামজি এটি আমার গণনা অনুসারে 4 কিন্তু তবুও ধন্যবাদ: ডি
ভেসকাঃ

1
তুমি ঠিক. ধন্যবাদ। 0 + -, 1 টাই ব্রেকার, 42 বাইট । আপনি |flএকটি সুন্দর ফর্ম্যাট জন্য যুক্ত করতে পারেন অনলাইন চেষ্টা করুন!
mazzy

1

কেগ (কেগ উইকিতে এসবিসিএস)

মূলত আর উত্তরের একটি বন্দর।

¿¿Ï_"Ï_!.

ব্যাখ্যা

¿¿#        Take 2 integer inputs
  Ï_"Ï_#   Generate 2 arrays the length of the integer inputs
       !.# Output the length of the stack

1

05 এ বি 1 , 2 4 বাইট, 0+ /-

F>

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

আমি যদি এই চ্যালেঞ্জটি ভুল বুঝি তবে দুঃখিত, তবে আমি 05AB1E এর কোনও উত্তর নেই বলে অবাক হয়েছি। এই ভাষায় সবচেয়ে সংক্ষিপ্ত উত্তরটি আমি আসতে পেরেছি যা + বা বিল্ট ইন সাম ফাংশন ব্যবহার করে না।

ব্যাখ্যা:

 F   #Loop A many times
  >  #Increment B
     #(Implicit output)

-২ ব্রেটস গ্রিমিকে ধন্যবাদ জানায়।


1
ধন্যবাদ! আমি এখনও 05AB1E এ নতুন।
বিসমার্ক Sep১


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