I ^ n, প্রদত্ত এন


27

চ্যালেঞ্জ

যতটা সম্ভব অক্ষরে অক্ষরে, i ^ n এর মান, প্রদত্ত n, একটি ধনাত্মক পূর্ণসংখ্যার মান 0 এর চেয়ে বড় হবে এটি স্ট্রিং হিসাবে আউটপুট করা উচিত।

যারা জানেন না তাদের জন্য, আমি এমন সংজ্ঞায়িত করেছি যে i ^ 2 = -1। তাই:

  • আমি ^ 1 = আমি
  • আমি ^ 2 = -1
  • আমি ^ 3 = -i
  • আমি ^ 4 = 1

এটি তখন পুনরাবৃত্তি করে ..

বিধি

  • যদি আপনার ভাষা জটিল সংখ্যাগুলিকে সমর্থন করে তবে কোনও কাজ বা পাটিগণিত এটি ব্যবহার করে না work
  • ভাসমান পয়েন্টের অপ্রতুলতা উত্তরগুলির জন্য ঠিক আছে যা যে কোনওভাবে দশমিক ফিরে আসবে তবে পূর্ণসংখ্যা ইনপুটগুলি সঠিক ফলাফল দেবে

বোনাস পয়েন্ট

-5 আপনি যদি মানটি আউট করতে পারেন তবে এনটি নেতিবাচকও রয়েছে

-15 যদি আপনি কোনও আসল সংখ্যার জন্য মান কাজ করতে পারেন (এই বোনাসটিতে উপরের বোনাস থেকে -5 অন্তর্ভুক্ত রয়েছে)

শুভকামনা!


1
আমরা ঠিক কোন ফর্ম্যাটে ফিরে আসি? ফাংশন আউটপুট বা stdout মাধ্যমে?
গর্বিত হাসেলেলার

ট্যাগ: উইকি এটির জন্য ডিফল্ট তালিকাবদ্ধ করে। অন্যথায় নির্দিষ্ট না করা থাকলে, ফাংশন এবং প্রোগ্রামগুলি সূক্ষ্ম হয়, ফাংশন আর্গুমেন্টের মাধ্যমে ইনপুট, STDIN বা কমান্ড-লাইন আর্গুমেন্ট এবং STDOUT বা ফাংশন রিটার্ন মানের মাধ্যমে আউটপুট। ফাংশনগুলির নামকরণ করতে হবে না।
মার্টিন ইন্ডার

1
@ মার্টিনব্যাটনার তবে আমি যদি ফাংশন আউটপুট চয়ন করি তবে কীভাবে আউটপুটটি আমার ভাষায় নেটিভ জটিল সংখ্যা ছাড়াই ফর্ম্যাট / সংরক্ষণ করা উচিত?
গর্বিত হাসেলেলার

16
@ বেটাডেকে ফ্লোটিং পয়েন্ট পূর্ণসংখ্যাগুলি কী কী? ও
মার্টিন এন্ডার

2
@ মার্টিনবাটনার হাহা ভুল শব্দ: / ভাসমান পয়েন্ট নম্বর তখন
বিটা

উত্তর:


15

রুবি, স্কোর -২

(১৩ বাইট, -15 বোনাস)

->n{[1,90*n]}

বৈশিষ্ট্যগুলির মধ্যে রয়েছে: কোনও রাউন্ডিং ত্রুটি নেই! (যদি আপনি ইনপুটটি যৌক্তিক হিসাবে পাস করেন)


লেখক কেজ 101 পোস্ট করেছেন

আপনি যদি কোনও আসল নম্বর সমর্থন করেন তবে আপনি যে কোনও বৈধ জটিল আকারে আউটপুট দিতে পারেন।

নেতিবাচক স্কোরগুলি আমার অ্যাড্রেনালাইন ভিড়কে এগিয়ে নিয়ে যায়। সুতরাং নিয়মগুলির অপব্যবহার করা এই মহৎ লক্ষ্য অর্জনের জন্য ব্যবহার করা হয়।

একটি বেনামী ফাংশন তৈরি করে এবং পোলার আকারে একটি জটিল সংখ্যার প্রতিনিধিত্ব করে এমন 2 টি এন্ট্রি সহ একটি অ্যারের আউটপুট দেয় (কৌণিক ইউনিট: ডিগ্রি)।


4
"রুবি, -2 বাইটস" .....
FantC

3
সুতরাং, এই 1,000,000,000,000 বার ডাউনলোড করা আমাকে 2TB ফ্রি হার্ড ড্রাইভের স্থান দেয়? আমার কাছে বেশ ভাল লাগার মতো শোনাচ্ছে।
রেডউল্ফ প্রোগ্রাম

I আমি এটি করতে সফল হওয়ার আগে আমার ব্রাউজারটি ভেঙে যায়। ভিতরে ফাইল সহ একটি "জিপ বোমা" চেষ্টা করতে পারেন? (এটি উত্তোলনের ফলে স্থান বাঁচায়))

15

সিজেম, 12 টি অক্ষর - 5 = 7

1'iW"-i"]li=

এটি এখানে পরীক্ষা করুন।

নেতিবাচক ইনপুট সমর্থন করে।

1              "Push 1.";
 'i            "Push the character i.";
   W           "Push -1.";
    "-i"       "Push the string -i.";
        ]      "Wrap all four in an array.";
         li    "Read STDIN and convert to integer.";
           =   "Access array. The index is automatically taken module the array length.";

ফলাফলটি প্রোগ্রামের শেষে স্বয়ংক্রিয়ভাবে মুদ্রিত হয়।

গণিত, 22 20 19 টি অক্ষর - 15 = 4

Sin[t=π#/2]i+Cos@t&

এটি একটি অনামী ফাংশন, যা আপনি পছন্দ মতো ব্যবহার করতে পারেন

Sin[t=π#/2]i+Cos@t&[15]

(অথবা এটি fবলার জন্য নির্ধারিত করুন , এবং তারপর করুন f[15]))

বাস্তবগুলি সমর্থন করে এবং পূর্ণসংখ্যার ইনপুটটির জন্য সঠিক ফলাফল দেয়।

মনে রাখবেন যে, iহয় না ম্যাথামেটিকাল জটিল আমি (যা I)। এটি কেবল একটি অনির্ধারিত পরিবর্তনশীল।

এছাড়াও, অভিব্যক্তিটির ক্রম সত্ত্বেও, গাণিতিক আউটপুটটিকে R+Ciআকারে পুনরায় অর্ডার করবে ।


আপনি প্রয়োজন হবে না 4%। এটি স্বয়ংক্রিয়ভাবে করা যেতে পারে।
জিমি 23013

@ ব্যবহারকারী23013 নিফটি :)
মার্টিন এন্ডার

8
দুটি উত্তর পৃথক হওয়া উচিত নয়?
জাস্টিন

@ কুইনকঙ্কস সম্ভবত ... মূলত তারা দুজনই সিজেমে ছিলেন, এ কারণেই আমি তাদের একই জবাব দিয়েছি। তবে দ্বিতীয়টি বৈধ ছিল না, তাই আমি এটি ম্যাথেমেটিকায় পোর্ট করেছি, তবে যেখানে ছিল সেখানে রেখে দিয়েছি। লোকেরা যদি জেদ করে তবে আমি তাদের আলাদা করে দিতে পারি।
মার্টিন ইন্ডার

এবং আপনি এর f@15পরিবর্তে কোনও অক্ষর ব্যবহার করে সংরক্ষণ করতে পারেন f[15]
orome

14

পাইথন 2 - (24-5) = 19

lambda n:'1i--'[n%4::-2]

বেশিরভাগ ক্রেডিট @ ব্যবহারকারী 2357112 সম্পর্কিত, আমি এই উত্তরটির মন্তব্যগুলি থেকে তার উত্তরটি আরও কিছুটা গল্ফ করেছি ।

ব্যাখ্যা: n%4স্ট্রিংয়ের সূচকে শুরু হয় '1i--'। তারপরে স্ট্রিংয়ের প্রতিটি অক্ষরের উপর দুটি ধাপে পিছনে পুনরাবৃত্তি হয়। সুতরাং, উদাহরণস্বরূপ, n=6সূচক 2 এ শুরু হবে, প্রথমটি -, তারপর এড়িয়ে যান iএবং 1ফিরে যান -1

@ এক্সনর একটি সম-দৈর্ঘ্যের সমাধানটি নির্দেশ করেছেন:

lambda n:'--i1'[~n%4::2] 

পাইথ - (14-5) = 9

আমি কেবল 14 পেয়ে যাব বলে মনে করতে পারি, আমি যেভাবেই বিপরীত / স্লাইস / ইত্যাদি চেষ্টা করি না কেন। : '(

%_2<"1i--"h%Q4

যা মূলত উপরের পাইথন উত্তরের সমান, তবে ২ টি ধাপে, কারণ পাইথ পাইথনের সম্পূর্ণ সূচীকরণ বিকল্পগুলি সমর্থন করে না। এটি অনলাইনে চেষ্টা করুন।

আমি পাইথ ইনডেক্সিং সম্পর্কে ইসাকের সাথে একটি কথা বলতে যাচ্ছি;)


পাইথনটি কি lambdaভেরিয়েবলের জন্য বরাদ্দ করা উচিত নয় ? অন্তত পরিবর্তিত হতে, আপনি প্রথম বন্ধনী দিয়ে ঘিরে রেখেছে প্রয়োজন চাই একে ডাকতে ভালবাসি, দুই বাইট যোগ তাই এটা বলা যেতে পারে (lambda...)(n)
mbomb007

@ mbomb007 মেটা অনুসারে এটি গ্রহণযোগ্য। এখানে কোড একটি ফাংশন তৈরি করে যা প্রয়োজনীয় কার্য সম্পাদন করে। অজ্ঞাতনামা ল্যাম্বডাস mapএবং এর মতো ফাংশনের জন্য পাইথনে তুলনামূলকভাবে ঘন ঘন ব্যবহার করা হয় sorted
FryAmTheEggman

11

টিআই-বেসিক (এনস্পায়ার) - 5 (20 টি অক্ষর -15)

cos(nπ/2)+sin(nπ/2)i

আপনি যদি কোনও জটিল রিটার্ন মান অর্জন করতে চান iতবে শেষে (জটিল i) দিয়ে প্রতিস্থাপন করুন ।


@ মার্টিনব্যাটনার টিআই-বেসিক মনে হয় কিছু ধরণের 'এক্সপ্রেশন' টাইপ ব্যবহার করে এবং অন্তর্নির্মিত পদ্ধতিগুলি এগুলির জন্য সঠিক ফলাফল দেয় return
শুজল

আমি দেখছি, তখন সব ঠিক আছে। ;)
মার্টিন ইন্ডার

এই বিধি সম্পর্কে কী "যদি আপনার ভাষা জটিল সংখ্যার সমর্থন করে তবে কোনও কাজ বা পাটিগণিত ব্যবহার করবেন না যা এটি কার্যকর করতে পারে" " + আমি পাটিগণিত
edc65

@ edc65 The + আসলে একটি জটিল অপারেশন। তবে, যদি আপনি এটি পছন্দ না করেন তবে একটি স্বাভাবিকের সাথে প্রতিস্থাপন করুন i। যদি ভেরিয়েবলটি iসংজ্ঞায়িত না করা হয় তবে আপনি জটিল নম্বরটি পেয়ে যাবেন ঠিক তার iপরিবর্তে । আমি কেবল আসল এবং কল্পিত অংশগুলি পৃথকভাবে গণনা করছি।
শুজাল

1
@ শুজল সেক্ষেত্রে আমার মনে হয় আপনার iযেভাবেই করা উচিত । জটিল আমি প্রশ্নটি যে চরিত্রের জন্য জিজ্ঞাসা করি তা নয়, এবং এটি আপনাকে দুটি বাইট বাঁচাতে পারে, তাই আপনি কমপক্ষে আমার সাথে টাই করতে চান;)।
মার্টিন ইন্ডার

7

মার্বেলস , 43 বাইট

আসলেই বিজয়ী নয়, মার্বেলাস মজাদার। :)

}0
^0
=0&2
&1
}0
^1\/
=0&02D3169
\/\/&0&1&2

এটি এমন একটি প্রোগ্রাম যা প্রথম কমান্ড-লাইন আর্গুমেন্ট থেকে একক পূর্ণসংখ্যা হিসাবে ইনপুটটি পড়ে। নোট করুন যে ইনপুটটি 256 মডুলো নেওয়া হয়েছে, তবে এটি 255 এর চেয়ে বেশি ইনপুটগুলির জন্য ফলাফলের বৈধতার উপর প্রভাব ফেলবে না, কারণ 256 4 দ্বারা বিভাজ্য।

ব্যাখ্যা

মার্বেলাস হ'ল 2 ডি প্রোগ্রামিং ল্যাঙ্গুয়েজ, যা "মার্বেল" (বাইট মানগুলি) একগুচ্ছ ডিভাইসগুলির মধ্যে পড়ার অনুকরণ করে। বোর্ডটি 2-বর্ণের প্রশস্ত কক্ষগুলি (ডিভাইসগুলি) দ্বারা গঠিত যা মার্বেলগুলি প্রক্রিয়া করতে পারে। বোর্ডের নীচে থেকে পড়ে যায় এমন সমস্ত কিছুই STDOUT এ মুদ্রিত করা হয়।

আসুন ব্যবহৃত ডিভাইসগুলির মাধ্যমে চলুন:

  • }0যেখানে প্রথম কমান্ড-লাইন আর্গুমেন্ট যায়। আমি এই ডিভাইসের দুটি উদাহরণ ব্যবহার করেছি, সুতরাং আমি ইনপুট মানটির দুটি কপি পেয়েছি (একই সাথে)।
  • ^nচেক nইনপুট মার্বেল (যেখানে তম বিট n=0অন্তত গুরুত্বপূর্ণ বিট), এবং উত্পাদন করে 1বা 0বিট উপর নির্ভর করে।
  • =0সঙ্গে সমতা জন্য চেক 0। যদি ইনপুট মার্বেলটি সমান হয় তবে এটি সরাসরি ডুবে যায়, যদি তা না হয় তবে ডানদিকে ঠেলে দেওয়া হয়।
  • \/ একটি ট্র্যাশ ক্যান, তাই এটি কেবল ইনপুট মার্বেলকে গ্রাস করে এবং কখনই কিছুই উত্পাদন করে না।
  • 2DASCII এর কোড -, 31এটি ASCII কোড 1এবং 69এটি ASCII কোড i
  • &nSynchronisers হয়। সিঙ্ক্রোনাইজাররা একটি মার্বেল nআটকে রাখে যতক্ষণ না একই সংযোগযুক্ত সমস্ত সিঙ্ক্রোনাইজার একটি মার্বেল ধরে থাকে, সেই পর্যায়ে তারা সকলে তাদের সজ্জিত মার্বেলটিকে পড়তে দেবে।

সুতরাং বাস্তবে, আমি যা করি তা হল তিনটি সিঙ্ক্রোনাইজারে তিনটি প্রাসঙ্গিক অক্ষর রাখা এবং কীভাবে ইনপুটটিতে কমপক্ষে উল্লেখযোগ্য বিট সেট করা হয় তার উপর নির্ভর করে তাদের মুক্তি দিন।

আরও তথ্যের জন্য, অনুমানের খসড়াটি দেখুন


1
আমি সত্যিই এই এক পছন্দ! মার্বেল শব্দগুলি আমার খুব শীঘ্রই এটি পরীক্ষা করা দরকার :)
কেজ 101


ওহ্ দারুণ! এটি সত্যিই আকর্ষণীয় দেখাচ্ছে
কেজ 101

ভুলে যাবেন না যে আপনি কমান্ড লাইনের মূল বোর্ডকে ইনপুট দিতে পারেন, সুতরাং এই বোর্ডটি যেমন রয়েছে তেমন ব্যবহার করা যেতে পারে।
স্পার

1
@ ওভারেক্টর এইচএম, আমি জানি না ... অতিরিক্ত অক্ষরগুলি আউটপুট করা (এমনকি তারা অক্ষরযোগ্য হলেও) এখনও আমার জন্য আউটপুট ফর্ম্যাটকে লঙ্ঘন করছে বলে মনে হচ্ছে। যদিও একটি মেটা প্রশ্ন মূল্যবান হতে পারে।
মার্টিন ইন্ডার

6

জাভাস্ক্রিপ্ট (ES6) 29-5 = 24

নেতিবাচক শক্তি সমর্থন করে।

f=n=>(n&2?'-':'')+(n&1?'i':1)

ES5:

function f(n){return (n&2?'-':'')+(n&1?'i':1)}

হ্যাঁ, খাটো ( f=n=>[1,'i',-1,'-i'][n%4]) তবে এটি কম সেক্সি এবং এটি নেতিবাচক শক্তিগুলিকে সমর্থন করবে না। এটি আমার অনুমান বোনাসের উপর নির্ভর করে।
মাইকেল এম

না, 29 বাইট নেতিবাচক এই কোড সহ সমর্থিত হয়।
মাইকেল এম

জেএসের কি কিছুটা &অপারেটর রয়েছে? যদি তাই হয় আপনি &3একটি সত্যিকারের মডুলাস -4 অপারেশন করতে পারেন। সম্পাদনা: দেখে মনে হচ্ছে এটি &2আপনার উত্তরে যেমন ব্যবহৃত হয় ...
1414

5

পাইথন 28 বাইট - 5 = 23

ইনপুট সমর্থন করে।

ধরে নিচ্ছি ল্যাম্বদা ফাংশন গ্রহণযোগ্য হবে (ধন্যবাদ ফ্রাইএইমডিজম্যান!):

lambda n:n%4/2*'-'+'1i'[n%2]

অন্যথায় 31 বাইট - 5 = 26

print[1,"i",-1,"-i"][input()%4]

1
আপনি একে ঠিক কল করতে পারবেন না। আপনি এটি যে কোনও জায়গায় অ্যাক্সেস করতে পারেন তা সংরক্ষণ করতে হবে। সুতরাং আপনি করতে পারেন foo=..., বা map(<your lambda>,range(10))এর i^nথেকে মানগুলির তালিকা পেতে পারেন 0-9
FryAmTheEggman

2
মূলত আপনি একটি ফাংশন পয়েন্টার তৈরি করছেন, যদি এটি আরও পরিষ্কার হয়: P
FryAmTheEggman

3
@ ডিজিটালট্রামা: হ্যাঁ, যদিও আপনি স্ট্রিং স্লাইসিং কৌশলগুলি দিয়ে আরও ভাল করতে সক্ষম হতে পারেন। উদাহরণস্বরূপ lambda n:'--1i'[n%4-2::2],।
ব্যবহারকারী 2357112 মনিকা

2
ব্যবহারকারীর 2357112 এর পোস্ট অনুবাদ করতে: '--1i'সূচী থেকে শুরু করে প্রতিটি অন্যান্য চরিত্র নিন n%4-2। পাইথনটি যখন নেতিবাচক সূচক পায়, তখন এটি শুরু হবে যে অ্যারের প্রান্ত থেকে অনেকগুলি অবস্থান বাকি আছে এবং তারপরে চলে যাবে 0। এইভাবে, 0এবং 1কখনই -লক্ষণগুলিতে আঘাত করবেন না 3এবং 4করবেন।
FryAmTheEggman

1
lambda n:n%4/2*'-'+'1i'[n%2]স্থানটি সরিয়ে দেয় এবং আরও ছোট হয় :)
FryAmTheEggman

4

(ইম্যাকস) লিস্প - 34

কেবল মজাদার জন্য, ইন (ইম্যাক্স) লিস্প:

(lambda(n)(elt[1 i -1 -i](% n 4)))

আপনি যদি এটি ব্যবহার করতে চান তবে একটি defunবা ব্যবহার করুন funcall:

(funcall
 (lambda (n) (elt [1 i -1 -i] (% n 4)))
 4) => 1

(mapcar
 (lambda(n)(elt[1 i -1 -i](% n 4)))
 [0 1 2 3 4 5 6 7 8])
 => (1 i -1 -i 1 i -1 -i 1)

4

এপিএল (ডায়ালগ) , 8 টি অক্ষর - 15 বোনাস = স্কোর -7

অন্তর্নির্মিত (এবং এইভাবে নিষিদ্ধ) ফাংশনটি হয় 0J1*⊢তবে এটি @ ব্লুটোরেঞ্জের পদ্ধতি ব্যবহার করে

¯12○.5×○

চ্যালেঞ্জ লেখক কেজ ১০১১ লিখেছেন :

আপনি যদি কোনও আসল নম্বর সমর্থন করেন তবে আপনি যে কোনও বৈধ জটিল আকারে আউটপুট দিতে পারেন।

এটি ফর্মটিতে একটি জটিল নম্বর প্রদান করে aJbযা এপিএলকে জটিল সংখ্যা প্রদর্শন করার স্বাভাবিক উপায়।

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

ব্যাখ্যা

¯12○ এর একক ভেক্টরটি আবিষ্কার করুন যার রেডিয়ানে কোণ রয়েছে

.5× আধা বার

 যুক্তিটি by (বৃত্ত ধ্রুবক) দ্বারা গুণিত হয়েছে



3

বেফুঞ্জ -98, 41-5 = 36 35-5 = 30 32-5 = 27

&4%:01-`!4*+:2%'8*'1+\2/d*' +,,@

নেতিবাচক পূর্ণসংখ্যার সমর্থন করে। এই সমাধান সহ কোনও পুরষ্কার জিততে যাচ্ছি না, তবে যাই হোক না কেন।

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

আমি নিশ্চিত যে এটিকে আরও কিছুটা কমে যেতে পারে। আপাতত, এখানে আরও একটি সমাধান রয়েছে যা নেতিবাচকতা গ্রহণ করে না, তবে খাটো হয়ে বোনাসের ক্ষতি হ্রাস করে:

বেফুঞ্জ -98, 32 26 23

&4%:2%'8*'1+\2/d*' +,,@

সম্পাদনা করুন - এখন "-" 13 "(0xd) অক্ষর" "থেকে দূরে রয়েছে এই সত্যটির সুবিধা নেয়।

2 সম্পাদনা করুন - এখন, আবার "i" 56 (0x38, বা '8) অক্ষর "1" থেকে দূরে রয়েছে বলে সুবিধা গ্রহণ করে।


3

জাভা 8 স্কোর: 72

জাভাতে, সবচেয়ে খারাপ গল্ফিং ভাষা! Golfed:

java.util.function.Function s=n->{new String[]{"i","-1","-i","1"}[n%4]};

সম্প্রসারিত:

class Complex{

    java.util.function.Function s = n -> {new String[]{"i","-1","-i","1"}[n%4]};

}

দ্রষ্টব্য: আমি জাভা ৮-তে অভ্যস্ত নই আমার কাছে এটির রানটাইম এখনও নেই। কোন সিনট্যাক্স ত্রুটি আছে কিনা আমাকে বলুন। এটি আমার প্রথম গল্ফও।

সম্পাদনা: সরানো হয়েছে import

সম্পাদনা: শ্রেণীর ঘোষণা সরিয়ে ফেলা হয়েছে।

স্কোর = 87 - 15 = 72 সহ অন্য একটি উত্তর

java.util.function.Function s=n->{Math.cos(n*Math.PI/2)+"+"+Math.sin(n*Math.PI/2)+"i"};

সম্প্রসারিত:

class Complex{

    java.util.function.Function s = n -> {Math.cos(n * Math.PI/2) + " + " + Math.sin(n * Math.PI/2) + "i"};

}

আপনি "আমদানি java.util। *" দিয়ে কিছু সংরক্ষণ করতে পারেন
অনুবিয়ান নুব

@ অ্যানুবিয়ান নুব ক্লাস ফাংশন প্যাকেজে java.util.functionনেই java.util(বা আমি ভুল?)
TheNumberOne

কিন্তু আপনি কি যদি প্যাকেজের আওতায় মানে আমদানি সবকিছু। ঠিক যেমন আপনি বর্তমানে প্যাকেজে সমস্ত ক্লাস আমদানি করছেন । java.util.*.*fuction
অনুবিয়ান নুব

5
@ অনুবিয়ান নুব importকেবলমাত্র সেই প্যাকেজে ক্লাস আমদানি করে। এটি সেই প্যাকেজের প্যাকেজগুলি থেকে কোনও ক্লাস আমদানি করে না। উদাহরণস্বরূপ, বর্গটি Functionপ্যাকেজে রয়েছে java.util.functionতবে প্যাকেজে নেই java.util
TheNumberOne

ওরে আমার খারাপ, সে সম্পর্কে দুঃখিত।
অনুবিয়ান নুব

3

ম্যাটল্যাব, 33 বাইট - 5 = 28

x={'i','-1','-i','1'};x(mod(n,4))

যদিও এটি কয়েক বাইট বেশি (37-5 = 32), আমি আসলে এই পদ্ধতিরটি আরও ভাল পছন্দ করি:

x='1i -';x((mod([n/2,n],2)>=1)+[3,1])

i^3এর -iচেয়ে iএটি অনুমান করা হয় যে এটি কেবল 1 টি যোগ করে। - অন্যান্য পাঠকদের জন্য সিডিনোট: চ্যালেঞ্জের প্রথম বিধি ছাড়াই মতলব সমাধানটি কেবল 3 টি অক্ষরের দীর্ঘ।
ডেনিস জাহেরউদ্দিন

হ্যাঁ, এটি একটি টাইপো ছিল। সংশোধন করা হয়েছে! দেখার জন্য ধন্যবাদ ... কমপক্ষে দ্বিতীয় (কিছুটা আকর্ষণীয়) পদ্ধতির সঠিক =)
স্টিভি গ্রিফিন

3

সি 77

main(){int n;scanf("%d",&n);char c[]={n%4>1?'-':' ',~n%2?'1':'i',0};puts(c);}

রুসলানের কাছে উন্নত ধন্যবাদ

সি 74-5 = 69

ওহ এবং অবশ্যই সবচেয়ে সুস্পষ্ট পদ্ধতির

main(){unsigned n,*c[]={"1","i","-1","-i"};scanf("%d",&n);puts(c[n%4]);}

2
আপনার চারপাশের প্রথম বন্ধনী অপসারণ করতে পারেন n%2এবং ব্যবহার ~পরিবর্তে !কারণ negating nপ্রথম, তারপর %2 ing জন্য অন্তত একই ফলাফল দেব n<(1<<32)-1। এবং সি এর ফাংশনটির জন্য সুস্পষ্টভাবে রিটার্নের ধরণের সংজ্ঞা দেওয়ার প্রয়োজন হয় না, তাই আপনি int শুরুতে সরিয়ে ফেলতে পারেন । এবং 0পরিবর্তে ব্যবহার করুন '\0'। এইভাবে -9 অক্ষর।
Ruslan

3

OCaml 47

let m n=List.nth["1";"i";"-1";"-i"](n mod 4);;

কোনও পুরষ্কার বিজয়ী সমাধান নয়, তবে এটি আমার প্রথমবারের কোড-গল্ফিং, তাই আমি কী করছি তা সম্পর্কে আমি ঠিক নিশ্চিত নই। আমি প্যাটার্ন মিলটি ব্যবহার করার চেষ্টা করেছি, তবে এটি আমার 58 বছরেরও বেশি হয়েছে।



2

রুবি 32-5 = 27

puts(%w[1 i -1 -i][gets.to_i%4])

নেতিবাচক শক্তি জন্য কাজ করে!


আপনি এর সাথে আরও তুচ্ছভাবে গল্ফ করতে পারেন puts %w[1 i -1 i][gets.to_i % 4]
হিস্টোক্র্যাট

2

পার্ল, 26 - 5 = 21

say qw(1 i -1 -i)[pop()%4]

একটি স্বতন্ত্র প্রোগ্রাম (কমান্ডলাইনে যুক্তি) বা কোনও ফাংশনের মূল অংশ হিসাবে কাজ করে।


2

জাভা: 151 131-5 = 126

Golfed:

class A{public static void main(String[]a){int n=Integer.parseInt(a[0]);System.out.print(n%4==0?"1":n%4==1?"i":n%4==2?"-1":"-i");}}

Ungolfed:

class A {
    public static void main(String[] a) {
        int n = Integer.parseInt(a[0]);
        System.out.print(n % 4 == 0 ? "1" : n % 4 == 1 ? "i" : n % 4 == 2 ? "-1" : "-i");
    }
}

একটি ফাংশন হিসাবে: 72-5 = 67

Golfed:

void f(int n){System.out.print(n%4==0?"1":n%4==1?"i":n%4==2?"-1":"-i");}

Ungolfed:

public void f(int n) {
    System.out.print(n % 4 == 0 ? "1" : n % 4 == 1 ? "i" : n % 4 == 2 ? "-1" : "-i");
}

হ্যাঁ, আরও একটি জাভা উত্তর - এবং আগের থেকে আরও খারাপ গল্ফ করেছে। তবে আপনি যা পারেন তার সাথে কাজ করুন ...

সম্পাদনা : ফাংশন সংস্করণ যুক্ত করা হয়েছে।

সম্পাদনা 2 : সুতরাং, কিছুটা পরীক্ষা এবং ত্রুটির পরে, এখানে এমন একটি সংস্করণ রয়েছে যা চক্রের লুফোলটি অন্বেষণ না করে বই দ্বারা এটি করার চেষ্টা করে। তাই ...

জাভা গণনা সহ: 146-15 = 131

Golfed:

class B{public static void main(String[]a){float n=Float.parseFloat(a[0]);System.out.print(Math.cos((n*Math.PI)/2)+Math.sin((n*Math.PI)/2)+"i");}}

Ungolfed:

class B {
    public static void main(String[] a) {
        float n = Float.parseFloat(a[0]);
        System.out.print(Math.cos((n * Math.PI) / 2) + Math.sin((n * Math.PI) / 2) + "i");
    }
}

(কমপক্ষে, আমি মনে করি আমি শীর্ষ বোনাস দাবি করতে পারি, অন্যথায় আমাকে সংশোধন করুন)


আপনি যদি আপনার কোডটিকে আর্গুমেন্ট হিসাবে প্রধানতে পাস করেন তবে আপনি হ্রাস করতে পারেন।
ব্যবহারকারী 902383

@ user902383 আমি সর্বদা একটি কার্যকারিতা তৈরি করতে পারতাম indeed সম্ভবত উভয় সংস্করণ পোস্ট করবে।
রোডলফো ডায়াস

আসলে আমি এটি বিশ্লেষণের বিষয়ে ভাবছিলাম, সুতরাং আপনার কাছে থাকবেint n = Integer.parseInt(a[0])
ব্যবহারকারী 902383

@ user902383 দাআআমন, এমনকি এটি মনে রাখেনি। থাম্বস আপ
রোডলফো ডায়াস

2

পাইথন - 31

print[1,'i',-1,'-i'][input()%4]

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


2

হাস্কেল জিএইচসিআই, 29 বাইটস - 15 = 14

i p=[cos(p*pi/2),sin(p*pi/2)]

ব্যবহার:

*Main> i 0
[1.0,0.0]
*Main> i pi
[0.22058404074969779,-0.9753679720836315]
*Main> i (-6.4)
[-0.8090169943749477,0.5877852522924728]

2

আর , 29 - 5 = 24 বাইট

c(1,"i",-1,"-i")[scan()%%4+1]

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

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

আমি এখানে মিশ্র আউটপুট সম্পর্কে চিন্তিত ছিলাম, তবে জিউসেপ্পে উল্লেখ করেছিলেন যে আর সংখ্যার প্রকারগুলিকে স্ট্রিং প্রকারে মিশ্রিত করা হয়।



@ জিউস্পেপ সম্পূর্ণভাবে এটিতে ফাঁকা। তার সাথে আমার উদ্বেগটি হ'ল আউটপুটটি প্রযুক্তিগতভাবে মিশ্রিত, অর্ধেক স্ট্রিং, অর্ধ সংখ্যাযুক্ত।
Sumner18

না, আর মেশানো numericহয়ে characterগেলে স্বয়ংক্রিয়ভাবে প্রকারভেদ করে ! হ্যাডলির বইটি এটি বেশ ভালভাবে ব্যাখ্যা করেছে - কেবলমাত্র Ctrl + F থেকে "Coercion" এবং আপনি এটি দেখতে পাবেন তবে পুরো বইটি পড়ার মতো (বেশিরভাগ গল্ফ করার উদ্দেশ্যে নয়, তবে কখনও কখনও আপনি দুটি বা কৌশল বেছে নেন) )
জিউসেপ


1

হাস্কেল, 29 বাইট - 5 = 24

f n=words"1 i -1 -i"!!mod n 4

নেতিবাচক শক্তি জন্য কাজ করে।

আমার কাছে একটি পয়েন্টফ্রি সংস্করণ ছিল, তবে এটি প্রকৃতপক্ষে দীর্ঘতর হবে।

f=(words"1 i -1 -i"!!).(`mod`4)

1

ক্লোজার ( 64 54 31 অক্ষর)

(defn i2n[n](println(case(mod n 4) 1 "i" 2 "-1" 3 "-i" 0 "1")))

সম্পাদন করা

শান অ্যালার্ডের পরামর্শ অনুসারে, এখানে একটি সংস্করণ রয়েছে যা কোনও caseফাংশনের পরিবর্তে আক্ষরিক ভেক্টর ব্যবহার করে:

(defn i2n[n](println (["1" "i" "-1" "-i"] (mod n 4))))

সম্পাদনা 2

ফলাফল সংগ্রহের জন্য মুদ্রণ করতে আরপিএলে গণনা করে #()শর্টকাট ব্যবহার করে ফাংশন কোডিং করে আমরা এটিকে হ্রাস করতে পারি

#(["1" "i" "-1" "-i"](mod % 4))

(যা আসলে অনেক বেশি ক্লোজার / লিস্প-ইশ হিসাবে ফাংশনটি এখন আসলে উত্পন্ন ফলাফলকে ফিরিয়ে দেয়, ফাংশনটি mapযেমন ব্যবহার করা যায় , তেমনভাবে দেয়

(map #(["1" "i" "-1" "-i"](mod % 4)) [0 1 2 3 4 5 6 7 8])

যা প্রিন্ট করে

("1" "i" "-1" "-i" "1" "i" "-1" "-i" "1")

শেয়ার করুন এবং উপভোগ করুন।


একটি বাছাই কাঠামো ব্যবহার করার পরিবর্তে, আপনি কি আমার উত্তর হিসাবে সুস্পষ্ট অ্যারে ব্যবহার করতে পারবেন না ?
সান অ্যালারেড


1

সি 105, ছিল 117

char c[2];
int main()
{
int n,i,j=0;scanf("%d",&n);i=n%4;
i>1?c[j++]='-':c[j+1]='\0';
c[j]=i&1?'i':'1';
puts(c);
}

এটি এমনকি কম্পাইল না কারণ তোমার পরে বরাদ্দকরণ parenthesize আবশ্যক :মধ্যে ?:প্লেইন সি এছাড়াও বিবৃতি, কি ব্যবহার বিন্দু 0==0যখন আপনি একক গৃহস্থালির কাজ ব্যবহার করতে পারেন 1? এবং আগে বন্ধনী প্রয়োজন নেই ?। এছাড়াও, সর্বশেষ ?:বিবৃতিটি ছোট করা যেতে পারে c[j]=i&1?'i':'1';
Ruslan

@ রাস্লান ইন কোডব্লকস মিংডব্লুতে আমি এবং 0 এর আশেপাশে কেবল 1 সতর্কতা রয়েছে। i এবং 0 == 0 হল
সমীক্ষার

হ্যাঁ, তবে 0==0যখন এটির সাথে মিল রয়েছে তখন ব্যবহার করার 1কী আছে ? লক্ষ্য করুন ==বেশী প্রাধান্য রয়েছে &, অন্যথায় আপনার (অনুমিত) পরীক্ষায় (i&0)==0সবসময় সত্য হবে।
Ruslan

1

পারি / জিপি , 26 - 5 = 21

n->Str([1,I,-1,-I][n%4+1])

n->cos(t=Pi*n/2)+I*sin(t)একটি চরিত্র ছোট, তবে সঠিক উত্তরগুলি হ্যান্ডেল করে না। অবশ্যই n->I^nঅনুমোদিত নয়, এবং সম্ভবত প্যারিও রয়েছে powIs


1

জেলি , 2 - 20 = -18 বাইট

ı*

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

এটি কোনও i ^ xবিল্টিন ব্যবহার করে না তবে এটি বিল্টিনগুলি ব্যবহার করে 1jএবং **তাই অনুমোদিত কিনা তা নিশ্চিত নয়।


"যদি আপনার ভাষা জটিল সংখ্যাগুলিকে সমর্থন করে তবে কোনও কাজ বা পাটিগণিত এটি ব্যবহার করে না।" আমি মনে করি এটি বেশ পরিষ্কার ...
ইমান 17:17 এ সম্পূর্ণরূপে মানবিক

@ টোটালিহুমান ওয়েল, আমি নিশ্চিত না যে 1j আক্ষরিকভাবে নিষিদ্ধ করা হয়েছে কিনা?
এরিক আউটগল্ফার

হ্যাঁ, তবে গাণিতিক ( *)।
সম্পূর্ণমানবিক

1
@ টোটালিহুমান এইচএম, সম্ভবত আমি নীচে অন্য সংস্করণ যুক্ত করব, যদিও "এই কাজ করতে পারে এমন কোনও ফাংশন বা পাটিগণিত ব্যবহার করবেন না" মনে হয় যে এই সঠিক কাজটি করার জন্য আমি কোনও বিল্ট-ইন ব্যবহার করতে পারি না ... বিটিডব্লিউ যেভাবে তাঁর এই বাক্যটি বোধ করেন তা আমাকে ভাবতে বাধ্য করে যে আপনি আক্ষরিক ব্যবহার করতে উত্সাহিত হয়েছেন 1j
এরিক আউটগল্ফার

1

05 এ বি 1 ই , স্কোর 5 (10 বাইট - 5 বোনাস)

'i®„-i1)Iè

এটি অনলাইনে চেষ্টা করুন বা আরও কিছু পরীক্ষার কেস যাচাই করুন

ব্যাখ্যা:

'i         '# Push character "i"
  ®         # Push -1
   „-i      # Push string "-i"
      1     # Push 1
       )    # Wrap everything on the stack into a list: ["i", -1, "-i", 1]
        Iè  # Use the input to index into it (0-based and with automatic wrap-around)
            # (and output the result implicitly)
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.