সাইন আউটপুট


67

একটি নম্বর এন দেওয়া, এন এর সাইন আউটপুট :

  • এন ইতিবাচক হলে আউটপুট 1
  • এন যদি নেতিবাচক হয়, আউটপুট -1
  • যদি এন 0 হয় তবে আউটপুট 0 হবে

এন আপনার নির্বাচিত ভাষায় পূর্ণসংখ্যার উপস্থাপনযোগ্য পরিসরের মধ্যে একটি পূর্ণসংখ্যা হবে।


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

8
এটি সম্ভবত লিডারবোর্ড ব্যবহার করতে পারে।
মার্টিন এন্ডার

2
@ মিস্টারলিস্টর আপনি কীভাবে চান তা উপস্থাপন করুন তবে কোডের দৈর্ঘ্যের পরিবর্তে আপনার সৃজনশীলতার সন্ধান করা উচিত।
ফ্লিপট্যাক

3
@ ফ্লিপট্যাক ওহ, আমি ভেবেছিলাম এটি কোডগল্ফ ছিল।
মিস্টার লিস্টার

3
@ মিঃলিস্টার এটি উদ্দেশ্য বিজয়ী মানদণ্ড। তবে sসাইন ইন বিল্টিনের জন্য টাইপ করতে সত্যই কি আরও বেশি প্রচেষ্টা লাগবে , বা এটি কার্যকর করার জন্য কিছু চতুর বিটশিটিং / ম্যাথ ব্যবহার করবে? কটাক্ষপাত আছে এই মেটা পোস্ট
FlipTack

উত্তর:


46

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

[1-9].*
1

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

একটি শূন্য-অংক এবং এর পরে সমস্ত কিছু প্রতিস্থাপন করে 1। এই একটি সম্ভাব্য নেতৃস্থানীয় ছেড়ে -অক্ষত এবং ছাড়া সমস্ত সংখ্যার পরিবর্তন 0পরম মান থেকে নিজেকে 1


এটি অত্যন্ত চালাক :)
মেগো

এটি পূর্ণসংখ্যার বৈজ্ঞানিক স্বরলিপি (যেমন 0.42e2) দিয়ে কাজ করে?
ডিম স্ক্রিপটুনফ

@ এগরস্ক্রিপ্টুনফ নং, তবে এটি কোনও প্রয়োজন নয়।
মার্টিন এণ্ডার

9
@ EgorSkriptunoff এটি রোমান সংখ্যাকেও সমর্থন করে না। চ্যালেঞ্জটি স্পষ্টভাবে একটি নির্দিষ্ট অ-মানক বিন্যাসের উল্লেখ না করে যার সমর্থন করা দরকার, সাধারণ অনুমানটি আপনার পছন্দের ভাষায় প্রাকৃতিক একটি একক ফর্ম্যাটকে মোকাবেলা করা ভাল।
মার্টিন ইন্ডার

3
@ ইগরসক্রিপটুনফ রেটিনার কোনও সংখ্যা সম্পর্কিত ধারণা নেই। এটি একটি খাঁটি স্ট্রিং-ভিত্তিক ভাষা।
মার্টিন এন্ডার

42

সি (জিসিসি), 24 23 22 18 বাইট

বাইট সংরক্ষণের জন্য @ অ্যারোস এবং @ স্টেডিবক্সকে ধন্যবাদ!

f(n){n=!!n|n>>31;}

সমস্ত সিস্টেম বা সংকলকগুলিতে কাজ করার গ্যারান্টিযুক্ত নয়, টিআইওতে কাজ করে ।


7
@ বিটসেগ এটি কারণ বিল্ট-ইনগুলির আপভোটগুলি এখন ভ্রূণ্য।
এরিক আউটগল্ফার

4
এর সাথে 1 বাইট সংরক্ষণ করা হচ্ছেreturn n>>16|!!n;
আড়াআড়ি

5
@ জিবি ইনট এর আকার সম্ভবত 2 (16, x86) বা 4 (32, x86_64) তবে মনে রাখবেন, যা প্রয়োজন তা একটি আর্কিটেকচার যা এটি বৈধ। এটি স্ট্যাক ওভারফ্লো নয়, বহনযোগ্যতা গুরুত্বপূর্ণ নয়।
বিড়াল

2
f(n){n=n>>31|!!n;}খুব কাজ করে। তবে এটি কেবল একটি সংকলক কৌতুক, কোনও ভাষা বৈশিষ্ট্য নয়।
জিবি

2
@ জিবি কম্পাইলার কিরকগুলি পুরোপুরি বৈধ, যতক্ষণ না এটি প্রমাণ করা যায় যে সেখানে একটি কম্পাইলার রয়েছে যেখানে কোচ কাজ করে। ভাগ্যক্রমে, জিসিসির কোচ রয়েছে।
মেগো

34

গণিত, 4 বাইট

Clip

বিল্ট-ইন ব্যবহার না করে Signএবং এখনও 4 বাইট স্কোর করা সম্পর্কে কীভাবে ? ;)

Clipএকটি একক যুক্তি ক্লিপ (অথবা ক্ল্যাম্প) মধ্যে ইনপুট মান সঙ্গে -1এবং 1। যেহেতু ইনপুটগুলি কেবল পূর্ণসংখ্যা হবে তাই এটি ব্যবহারের মতো Sign


29

COW, 225 213 201 বাইট

oomMOOmoOmoOmoOmoOMoOMoOmOomOomOoMoOMMMmoOMMMMOOMOomOo
mOoMOomoOmoOmoomOomOoMMMmoOmoOmoOMMMMOOOOOmoOMOoMOomOo
mOomOoMoOMMMmoOMMMMOOMOomOomOoMoOmoOmoOmoomoOmoomOomOo
mOomoomoOMOOmoOmoOmoOMOoMMMOOOmooMMMOOM

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

এই কোডটি যেভাবে কাজ করে তা হ'ল এটি বড় সংখ্যা সংযোজন এবং বিয়োগ করে বিকল্পটি সাইনটি নির্ধারণ করে এবং শেষটি কোনটি কাজ করেছিল তা দেখে। কোনও শূন্য-পূর্ণ পূর্ণসংখ্যা দেওয়া, প্রথমে 1 টি বিয়োগ করুন, তারপরে 2 যোগ করুন, তারপরে 3 টি বিয়োগ করুন এবং অবশেষে আপনি 0 এ পৌঁছবেন। 0 থেকে শুরু হওয়া একটি মানটিতে বিকল্প যোগ করে 2 বিয়োগ করে আপনার রাষ্ট্রের ট্র্যাক রাখুন For উদাহরণ:

-5  - 1  = -6  (current state: 0 + 2 = 2)
-6  + 2  = -4  (current state: 2 - 2 = 0)
-4  - 3  = -7  (current state: 0 + 2 = 2)
-7  + 4  = -3  (current state: 2 - 2 = 0)
-3  - 5  = -8  (current state: 0 + 2 = 2)
-8  + 6  = -2  (current state: 2 - 2 = 0)
-2  - 7  = -9  (current state: 0 + 2 = 2)
-9  + 8  = -1  (current state: 2 - 2 = 0)
-1  - 9  = -10 (current state: 0 + 2 = 2)
-10 + 10 =  0  (current state: 2 - 2 = 0)
value is now at 0.  state - 1 = 0 - 1 = -1
sign of original number is -1

আপনার কাজ শেষ হয়ে গেলে, আপনার রাষ্ট্র থেকে 1 টি বিয়োগ করুন এবং আপনি ইতিবাচক বা নেতিবাচক চিহ্নটি পাবেন। আসল সংখ্যাটি যদি 0 হয় তবে এর যে কোনও একটি করতে বিরক্ত করবেন না এবং কেবল 0 মুদ্রণ করুন।

বিস্তারিত ব্যাখ্যা:

oom                                        ;Read an integer into [0]
MOO                                        ;Loop while [0] is non-empty
    moOmoOmoOmoOMoOMoOmOomOomOo            ;    Decrement [4] twice
    MoOMMMmoOMMM                           ;    Increment [1], then copy [1] to [2]
    MOO                                    ;    Loop while [2] is non-empty
        MOomOomOoMOomoOmoO                 ;        Decrement [0] and [2]
    moo                                    ;    End loop now that [2] is empty
    mOomOoMMMmoOmoOmoOMMM                  ;    Navigate to [0], and copy to [3]
    MOO                                    ;    Perform the next steps only if [3] is non-zero
        OOOmoOMOoMOomOomOomOoMoOMMMmoOMMM  ;        Clear [3], increment [4] twice, increment [1], and copy it to [2]
        MOO                                ;        Loop while [2] is non-empty
            MOomOomOoMoOmoOmoO             ;            Decrement [2] and increment [0]
        moo                                ;        End loop now that [2] is empty
    moO                                    ;        Navigate back to [3]
    moo                                    ;    End the condition
    mOomOomOo                              ;    Navigate back to [0]
moo                                        ;End loop once [0] is empty.
moO                                        ;Navigate to [1]. If [1] is 0, then input was 0.  Otherwise, [4] contains (sign of [0] + 1)
MOO                                        ;Perform the next steps only if [1] is non-zero
    moOmoOmoOMOoMMMOOO                     ;    Navigate to [4], copy it to the register, and clear [4].
moo                                        ;End condition
MMMOOM                                     ;If the register contains something (which is true iff the condition ran), paste it and print it.  Otherwise, no-op and print 0.

আমি এখনও এটি গল্ফ করে নিয়ে পরীক্ষা নিরীক্ষা করছি (COW এ গল্ফ করা বরং কঠিন এটি আপনি অবাক হয়ে যাবেন), তাই ভবিষ্যতে এটি আরও কয়েকটি বাইট নেমে আসতে পারে।


1
এবং একটি 'মু' আছে - ভাষা? ...
মুকুল কুমার

1
@ মুকুলকুমার এটি একটি ব্রেইনফাক ডেরিভেটিভ নামক ডাব্লু সিওডাব্লু যা
বিএফ-তে

এটিকে "ব্যাড ম্যাজ" ভাষাও বলতে পারেন। OUT OF MANA!!!
ম্যাজিক অক্টোপাস আরন

18

কিউবিক্স , 10 বাইট

(W0^I?>O2@

এটি অনলাইন পরীক্ষা!

এই কোডটি নিম্নলিখিত ঘনক্ষেতের জালে আবৃত:

    ( W
    0 ^
I ? > O 2 @ . .
. . . . . . . .
    . .
    . .

এরপরে কোডটি Iপূর্ব দিকে মুখ করে আইপি (নির্দেশ পয়েন্টার) দিয়ে চালানো হয় । Iএটি স্ট্যাকের দিকে ঠেলে STDIN থেকে একটি স্বাক্ষরিত পূর্ণসংখ্যার ইনপুট দেয়।

পরবর্তী কমান্ডটি হ'ল ?, যা শীর্ষ আইটেমের চিহ্নের উপর নির্ভর করে আইপির দিক পরিবর্তন করে। যদি ইনপুট 0 হয় তবে এটি নীচের কোডের মাধ্যমে চলমান একই দিকে চলতে থাকবে:

  • >- আইপিটি পূর্ব দিকে দেখান। (কোনও বিকল্প নেই যেহেতু আমরা ইতিমধ্যে পূর্ব দিকে যাচ্ছি))
  • O - পূর্ণসংখ্যা হিসাবে শীর্ষ আইটেম আউটপুট।
  • 2- স্ট্যাক 2 টিপুন। এটি কার্যত কোনও অপ-বিকল্প, কারণ ...
  • @ - প্রোগ্রামটি সমাপ্ত করে।

যদি ইনপুটটি নেতিবাচক হয় তবে আইপি বাম দিকে ঘুরবে ?; যেহেতু এটি একটি ঘনক্ষেত্র, তাই আইপি 0দ্বিতীয় সারিতে পূর্ব দিকে অগ্রসর হয়। 0একটি আক্ষরিক 0 ঠেলে, তারপর এই কোডটি চালানো হয়:

  • ^ - আইপি উত্তর দিকে নির্দেশ করুন।
  • W - "সাইডস্টেপ" আইপি একদিকের বাম দিকে।
  • ( - শীর্ষ আইটেম হ্রাস।

টিওএস এখন রয়েছে -1, এবং আইপি কিউ-এর চারপাশে কোনও সংযোজন নয়-অপ্সের মাধ্যমে গুটিয়ে রাখে .যতক্ষণ না এটি আঘাত করে >। এই উপরে উল্লিখিত একই আউটপুট কোড চালায়, outputting -1

যদি ইনপুটটি ইতিবাচক হয় তবে একই ব্যপারটি নেতিবাচক ইনপুটগুলির সাথে একই ঘটবে: আইপি বামের পরিবর্তে ডান দিকে ?ঘুরবে এবং ঘনক্ষেত্রের কাছে আচ্ছাদন করে 2যা আক্ষরিক ২ টি ধাক্কা দেয়। এরপরে এটি হ্রাস করা হয় 1 এবং আউটপুট প্রেরণ।


4
প্রোগ্রাম প্রবাহ অ্যানিমেশন খুব সুন্দর!
লুইস মেন্ডো

দুর্দান্ত ভাষা। এটি আরও খাটো হতে পারে? 4 প্রবাহ নিয়ন্ত্রণ অনেক বেশি মনে হয়। অপারেশন-কাউন্টে এটি আরেকটি পরিচয় করিয়ে 8 বাইট হতে পারে?, তবে এখন এটি কিউবের নীচের অর্ধেকটি ব্যবহার করে: ..1nI? ..> ও @ .........?
ব্ল্যাকশিফট

ছয়টি সম্ভব যদি আমরা প্রথমটির পরে আউটপুটগুলি উপেক্ষা করি: / আমি? NO1 যাইহোক, এটি কেবলমাত্র কাজ করে কারণ আমি অনুমান অনুযায়ী 0-এর পরিবর্তে অনলাইনে অনুবাদক -1 এ ফিরে আসি।
ব্ল্যাকশিফট

@ ব্ল্যাকশিফ্ট আপনার আগ্রহের জন্য ধন্যবাদ! আমি আপনার পরামর্শগুলি পছন্দ করি তবে সেগুলি কীভাবে উন্নত করা যায় তা সম্পর্কে আমি নিশ্চিত নই। কম নির্দেশাবলী ব্যবহার করা অবশ্যই সম্ভব; জটিল অংশটি কিউবটি কম ব্যবহার করছে ... ;-) এবং -1 বাগটি নির্দেশ করার জন্য ধন্যবাদ, আমি শীঘ্রই এটি ঠিক করে ফেলব।
ETH প্রোডাকশনস

@ETHproductions আইএমও এটি একটি বাগ না, এটি জন্য জ্ঞান করে তোলে Iফিরে যাওয়ার -1 যখন ইনপুট শেষ হয় ছোট হাতের ঠিক iআছে।
ফ্লিপট্যাক

16

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

Math.sign

সহজবোধ্য।

সংক্ষিপ্ততম অন্তর্নির্মিতটি 13 বাইট:

n=>n>0|-(n<0)

@ নীলকে ধন্যবাদ, এটি একটি বাইট দ্বারা গল্ফ করা যেতে পারে তবে কেবল 32-বিট পূর্ণসংখ্যায় কাজ করার ব্যয়েই:

n=>n>0|n>>31

অথবা আপনি করতে পারেন

n=>n>0?1:!n-1

যা আরও গল্ফযোগ্য মনে হয় তবে আমি কীভাবে তা নিশ্চিত নই।


2
32 বিট স্বাক্ষর পূর্ণসংখ্যা 12 বাইটে অ builtin n: n=>n>>31|!!n
নিল

@ নীল n>>31সত্যিই স্মার্ট, ধন্যবাদ!
ETH প্রোডাকশনগুলি

তৃতীয় সমাধানটি বৈধ বলে আমি মনে করি না, যেহেতু জাভাস্ক্রিপ্ট সংখ্যার জন্য ডাবল-স্পষ্টতা ভাসা ব্যবহার করে। তবে, আমি ভুল হতে পারি।
মেগো

@ মেগো আপনি সঠিক আছেন। আমি পোস্টে এটি স্পষ্ট করেছি।
ETH প্রোডাকশনগুলি

1
@ মেগো দুঃখিত, আমি আপনার মন্তব্য মিস করেছি। বিটওয়াইজ অপারেটরগুলি ব্যবহার করার সময়, জেএস সুস্পষ্টভাবে তাদের অপারেশনগুলিকে স্বাক্ষরিত 32-বিট পূর্ণসংখ্যার জন্য কাস্ট করে, তাই তৃতীয় সমাধানটি কাজ করে, তবে কেবল -2147483648 থেকে 2147483647 পর্যন্ত সংখ্যাগুলিতে
ETH প্রোডাকশনগুলি

15

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

জটিল সংখ্যার খুব জন্য কাজ করে, 1∠ ফিরে θ :

×

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


পূর্ণাঙ্গের জন্য (ওপি অনুসারে) অন্তর্নির্মিত ব্যতীত:

¯11⌊⊢

¯1⌈ নেতিবাচক এক বৃহত্তম এবং

1⌊ এক এবং সবচেয়ে ছোট

যুক্তি

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

... এবং একটি সাধারণ:

>∘0-<∘0

>∘0 আরো-চেয়ে-জিরো

- ঋণচিহ্ন

<∘0 কম শূন্য

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


1
আপনি আসলে এটি একটি বাইটে করেছেন ... আপনি স্যার, কিংবদন্তি। আমি নিশ্চিত জোন স্কিট গর্বিত হবে।

@ মঙ্গো আপনি ঠাট্টা করছেন, তাই না? এই চ্যালেঞ্জের মুষ্টিমেয় একক-বাইট উত্তর রয়েছে।
অ্যাডম

1
আমি ব্যঙ্গাত্মক হয়ে উঠছিলাম, এছাড়াও আমি বলেছিলাম যে এটি আমি প্রথম একক বাইট উত্তর দেখেছি।

14

> <> , 9 8 বাইট

একটি বাইট সংরক্ষণ করার জন্য Sp3000 ধন্যবাদ।

'i$-%n/

এর 0x01আগে একটি অপ্রচলিত আছে /

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

ব্যাখ্যা

এটি আমার চরিত্রের কোড-ভিত্তিক লাইব্রের্থ উত্তরের একটি বন্দর ।

'     Push the entire program (except ' itself) onto the stack, which ends 
      with [... 1 47].
i     Read the first character of the input.
$-    Subtract the 47.
%     Take the 1 modulo this value.
n     Output the result as an integer.
0x01  Unknown command, terminates the program.

আমি মনে করি যে প্রোগ্রামটি সঠিকভাবে শেষ করতে আপনি ;0x01
সেই অপ্রিন্টের

@EriktheOutgolfer আমি প্রয়োজন 0x01একটি ধাক্কা 1যাহাই হউক না কেন।
মার্টিন এন্ডার

2
ওহ, মনে হয় আমি কেবল আমার পরামর্শটি পরীক্ষা করেছি 123। পাঠ শিখেছি: আরও কিছু ক্ষেত্রে পরীক্ষা করা।
এরিক আউটগলফার

14

Vim, 22 বাইট

xVp:s/-/-1^M:s/[1-9]/1^M

@ ডিজেএমসিমেহেমে একটি বাইট সংরক্ষণ করা হয়েছে !

এখানে, ^Mএকটি আক্ষরিক নিউলাইন।

@ Nmjcman101 মন্তব্যগুলিতে যেমন উল্লেখ করেছে, পরিবর্তে একটি একক রেজেক্স ব্যবহার করা যেতে পারে ( :s/\v(-)=[^0].*/\11^M, 20 বাইট), তবে যেহেতু এটি মূলত রেটিনার উত্তর হিসাবে একই, আমি নিজের পদ্ধতিতে আঁকছি।

ব্যাখ্যা:

xVp                        Delete everything except the first character. If the number is negative, this leaves a -, a positive leaves any number between 1 and 9, and 0 leaves 0.
   :s/-/-1^M               Replace a - with a -1
            :s/[1-9]/1^M   Replace any number between 1 and 9 with 1.

এটির একটি জিআইএফ নেতিবাচক সংখ্যার (পুরানো সংস্করণ) দিয়ে চলছে:

নেগেটিভ নিয়ে চলছে

এখানে এটি 0 দিয়ে চলছে:

শূন্য নিয়ে চলছে

ধনাত্মক নিয়ে চলছে:

পজিটিভ নিয়ে চলছে


1
আমি আপনার পদ্ধতিটি সত্যিই পছন্দ করি তবে এটি একটি একক :s/\v(-)=[^0].*/\11
রেজেজেমে

বিশিষ্ট কনসোল জিআইএফ ... ??
Desty

12

///, 52 36 বাইট

/a/\/1\/\///2a3a4a5a6a7a8a9a10a11/1/

অবহেলিত, ব্যাখ্যা:

/2/1/
/3/1/
/4/1/
/5/1/
/6/1/
/7/1/
/8/1/
/9/1/
/10/1/
/11/1/

এটি মূলত একটি মানচিত্রের প্রয়োগ, অর্থাৎ দুটি স্তর রয়েছে:

  • অঙ্কগুলির সমস্ত উপস্থিতি প্রতিস্থাপন করুন 2- যেমন - 9দ্বারা ->112304051110101
  • জোড়া কমাতে 11বা 10করতে 1বারবার, যেমন 1110101->1

যদি একটি ছিল -প্রাথমিকভাবে সামনে, এটা থাকবে এবং আউটপুট হবে -1। একটি অবিবাহিত 0কখনও প্রতিস্থাপন করা হয় না, ফলে এটি নিজেই হয়।

আপডেট করুন: aliasing অতিরিক্ত 16 বাইট সংরক্ষণ //1/সঙ্গে a, মার্টিন Ender ধন্যবাদ।

অনলাইনে এটি পরীক্ষা করে দেখুন


2
এটি অত্যন্ত চতুর!
মেগো

11

5
ওহ, আপনি আমাকে নিনজ করতেন।
জোনাথন অ্যালান

1
উপস। দুঃখিত ...
ডেনিস

5
খুব খারাপ আপনি পারবেন না (0).__rcmp__...
Sp3000

1
আপনি -(0).__cmp__যদিও করতে পারেন ।
nyuszika7h

1
পছন্দ করেছেন এটিকে কোনও ফাংশন হিসাবে ব্যবহারের চেষ্টা করা টাইপ-এরির উত্থাপন করে ।
ডেনিস

11

ভোল্টেজ , 10 বাইট

?:+:)%:(%!

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

ব্যাখ্যা

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

পরিবর্তে, এখানে একটি বদ্ধ-ফর্ম সমাধান, এর জন্য কোনও শাখার প্রয়োজন নেই:

Code    Comment             Example -5      Example 0       Example 5
?       Read input.         [-5]            [0]             [5]
:+      Double.             [-10]           [0]             [10]
:)      Copy, increment.    [-10 -9]        [0 1]           [10 11]
%       Modulo.             [-1]            [0]             [10]
:(      Copy, decrement.    [-1 -2]         [0 -1]          [10 9]
%       Modulo.             [-1]            [0]             [1]
!       Print.              []              []              []

নির্দেশ নির্দেশকটি তখন একটি নির্ধারিত প্রান্তে আঘাত করে, ঘুরে দাঁড়ায় এবং %এখন শূন্য দ্বারা বিভাজনের চেষ্টা করার পরে সমাপ্ত হয়।

ইনপুটগুলি দিয়ে এই কাজটি করার জন্য ইনপুট দ্বিগুণ করা প্রয়োজনীয় 1এবং -1অন্যথায় দুটি মডুলোর ক্রিয়াকলাপগুলির মধ্যে একটির ইতিমধ্যে শূন্য দ্বারা বিভাজন চেষ্টা করবে।


1
আপনার কোডটি খুশি এবং দুঃখজনক হয়ে :D
স্টেফান

2
@ স্টেফান আপনি পছন্দ করলে অর্ডার পরিবর্তন করতে পারেন। ;)
মার্টিন ইন্ডার

9

পিএইচপি, 16 বাইট

নতুন স্পেসশিপ অপারেটর ব্যবহার করে।

<?=$argv[1]<=>0;

এটি উল্লেখ করতে ভুলবেন না যে এটি কেবলমাত্র একটি পিএইচপি 7 উত্তর। এবং যেহেতু আপনি ব্যবহার করছেন <?=, আপনার ব্যবহার করা উচিত $_GET[n], যা আর কোনও বাইট নেয় না। ব্যবহার করতে <?=, আপনাকে ওয়েবসারভারের ভিতরে থাকা দরকার (অ্যাপাচি এর মতো) এবং সেখানে আপনার অ্যাক্সেস পাবে না $argv। আপনি <?php var_dump($argv);একটি পিএইচপি ফাইল থেকে চালানোর চেষ্টা করতে পারেন , অ্যাপাচি মাধ্যমে অ্যাক্সেস করা, এবং এটি প্রদর্শিত হবে NULL
ইসমাইল মিগুয়েল

1
"<? = ব্যবহার করার জন্য আপনাকে ওয়েবসারভারের ভিতরে থাকা দরকার (অ্যাপাচি এর মতো)," না <?=। কমান্ড লাইন থেকে অপারেটর ঠিক কাজ করে fine
অ্যালেক্স হাওয়ানস্কি

দৌড় php -r '<?=1'আমি পেয়েছি PHP Parse error: syntax error, unexpected '<' in Command line code on line 1। তবে একটি ফাইল থেকে ভাল কাজ করছে বলে মনে হচ্ছে। আমার অনুমান তুমি ঠিক.
ইসমাইল মিগুয়েল

-rপতাকা একটি কোড স্নিপেট চালানো হয়। এটি সম্পূর্ণ উত্স। এটি একটি ফাইলে সংরক্ষণ করুন এবং তারপরে চালানphp file.php
অ্যালেক্স হাওয়ানস্কি

আমি এটি ইতিমধ্যে খুঁজে পেয়েছি। আমি সত্যই জানতাম না যে এটি কোনও ফাইল থেকে কাজ করেছে (অন্তর্নিহিত) -fপ্যারামিটারটি ব্যবহার করে ।
ইসমাইল মিগুয়েল

9

মস্তিষ্ক-ফ্লাক 74 42 40 বাইট

1000000000 ধন্যবাদ 2 বাইট সংরক্ষণ করা

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

অনলাইনে চেষ্টা করে দেখুন!

ব্যাখ্যা:

{                                }       # if 0 do nothing
   (          )                          # push:                           
    {}<     >                            # the input, after 
       (    )                            # pushing:
        [  ]                             # negative:
         ()                              # 1

 (                    )                  # Then push:
  [            ]                         # the negative of the input
                <>                       # on the other stack with:
                   ()                    # a 1 
                  (  )                   # pushed under it

                       {        }        # while 1: 
                        ({}())           # increment this stack and...
                              <>         # switch stacks

                                 {}      # pop the top (the counter or 0 from input)
                                   (  )  # push:
                                    {}   # the top (this is a no-op, or pushes a 0)


আপনি চারপাশে শূন্য মনাদ সরিয়ে 2 বাইট সংরক্ষণ করতে পারেন(())
0


8

সি, 24 20 19 18 বাইট

আমি এটিকে গল্ফ করার জন্য দুটি সি-শোষণকে গালি দিই; এটি সি (জিসিসি) এ রয়েছে।

f(a){a=a>0?:-!!a;}

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


পরিবর্ধন ও পরিবর্তন তালিকা:

1) f(a){return(a>0)-(a<0);}// 24 বাইট

2) f(a){a=(a>0)-(a<0);}// 20 বাইট

3) f(a){a=a>0?:-1+!a;}// 19 বাইট

4) f(a){a=a>0?:-!!a;}// 18 বাইট


সংশোধন 1: প্রথম প্রচেষ্টা। সাধারণ যুক্তি

পুনর্বিবেচনা 2: গিসি-তে একটি স্মৃতি / স্ট্যাক বাগ আপত্তিজনকভাবে যেখানে আমি বলতে পারি, একটি অ-রিটার্নিং ফাংশন নির্দিষ্ট ক্ষেত্রে শেষ সেট পরিবর্তনশীলটি ফিরিয়ে দেবে।

পুনর্বিবেচনা 3: আপত্তিজনক ত্রৈমাসিক আচরণ যেখানে অনির্ধারিত ফলাফল শর্তসাপেক্ষ ফলাফল ফিরে আসবে (এই কারণেই আমার ত্রিনিরিতে সত্যিকারের প্রত্যাবর্তন শূন্য)

পুনর্বিবেচনা 4: সংশোধন 2-এ রেফারেন্সের !!জন্য বার্ষিক শর্তসাপেক্ষ প্রতিস্থাপন থেকে একটি বোল কাস্ট ( ) বিয়োগ করুন nil


7

রুবি, 10 বাইট

->x{x<=>0}

চান 0.<=>এছাড়াও কাজ, বা আপনি যে রুবি মত পদ্ধতি উল্লেখ থাকতে পারে না?
নিক হার্টলি

.<=>1 টি আর্গুমেন্ট প্রত্যাশা করে, সুতরাং এটি সত্তাটি শেষ হবে 0.<=> x, যা দীর্ঘ।
সেমস

@ কিপেইসট্যাক্স আপনার প্রয়োজন 0.method:<=>কারণ রুবীতে পদ্ধতি কলগুলি প্রথম বন্ধনী ব্যবহার করে না এবং 0.<=>খুব কম যুক্তিযুক্ত একটি পদ্ধতি কল হিসাবে ব্যাখ্যা করা হবে।
সাইয়েস

7

পার্ল, 9 বাইট

-Eকোনও অতিরিক্ত ব্যয় ছাড়াই প্রয়োজন ।

say<><=>0

ব্যবহার

perl -E 'say<><=>0' <<< -9999
-1
perl -E 'say<><=>0' <<< 9999
1
perl -E 'say<><=>0' <<< -0
0

আমি ফিশ অপারেটর দিয়ে খুশি!


1
এটি আসলে "প্রয়োজন" হয় না -E, কেবলমাত্র আপনি যদি কোনও ফাইলের পরিবর্তে সিএলআই থেকে কল করেন তবে আমি অনুমান করি যে আপনি কোনও অতিরিক্ত ব্যয় করেন নি।
nyuszika7h

@ nyuszika7h প্রকৃতপক্ষে, আমার অনুমান করা দরকার যে পদ্ধতিতে পরীক্ষাটি কার্যকর -eহবে না তবে -Eএটি আর আর গ্রহণযোগ্য নয় -e। মেটা সম্পর্কে sensকমত্য অনুসারে। আমি আশা করি যে একটু সাহায্য!
ডম হেস্টিংস

হ্যাঁ, আমি এর জন্য কোনও অতিরিক্ত ব্যয়ের প্রয়োজনের পরামর্শ দিচ্ছিলাম না, কারণ কোনও ফাইল থেকে যখন স্ক্রিপ্টটি সাধারণত কার্যকর করা হয় তখন এটি ঠিক কাজ করে।
nyuszika7h

7

স্ট্যাক বিড়াল , 6 + 4 = 10 বাইট

_[:I!:

​ -nmপতাকাগুলির জন্য +4 বাইট । nসংখ্যার I / O এর জন্য এবং স্ট্যাক বিড়ালদের যেহেতু প্রোগ্রামগুলি প্যালেন্ড্রোমিক হতে mহয় তাই মূল উত্সটি দেওয়ার জন্য উত্স কোডটি স্পষ্টতই মিরর করে

_[:I!:!I:]_

এটি অনলাইন চেষ্টা করুন! মূলত সমস্ত ভাল স্ট্যাক বিড়ালদের গল্ফের মতোই, এটি নিষ্ঠুর বাহিনীর দ্বারা পাওয়া গেছে, দীর্ঘ শট দ্বারা কোনও ম্যানুয়াল প্রচেষ্টা চালিয়েছে এবং সহজেই কোনও বৃহত্তর প্রোগ্রামে সংযুক্ত করা যায় না।

Dআপনি যদি ধাপে ধাপে প্রোগ্রামের ট্রেস দেখতে চান, তবে -nmDএসটিডিআরআর / ডিবাগ পরীক্ষা করে দেখুন এবং একটি পতাকা যুক্ত করুন ।


স্ট্যাক বিড়ালগুলি স্ট্যাকের একটি টেপ ব্যবহার করে যা নীচে জিরো দিয়ে স্পষ্টভাবে ভরা হয়। প্রোগ্রামটির শুরুতে, সমস্ত ইনপুট ইনপুট স্ট্যাকের দিকে ঠেলে -1দেওয়া হয়, অন্তর্নিহিত শূন্য থেকে ইনপুট আলাদা করার জন্য বেসে একটি with প্রোগ্রামের শেষে, বর্তমান স্ট্যাকটি আউটপুট, -1যদি উপস্থিত থাকে তবে একটি বেস বাদে ।

এখানে সম্পর্কিত কমান্ডগুলি হ'ল:

_           Perform subtraction [... y x] -> [... y y-x], where x is top of stack
[           Move left one stack, taking top of stack with you
]           Move right one stack, taking top of stack with you
:           Swap top two of stack
I           Perform [ if top is negative, ] if positive or don't move if zero. Then
                negate the top of stack.
!           Bitwise negate top of stack (n -> -n-1)

নোট করুন যে এই সমস্ত কমান্ড অবিচ্ছিন্ন এবং এর বিপরীতটি কমান্ডের মিরর। এটি স্ট্যাক বিড়ালগুলির ভিত্তি - সমস্ত অনিয়মিত সমাপ্তির প্রোগ্রামগুলি বিজোড় দৈর্ঘ্যের হয়, যেহেতু দৈর্ঘ্যের প্রোগ্রামগুলি স্ব-বাতিল হয়।

আমরা দিয়ে শুরু

               v
               n
              -1
...  0    0    0    0    0  ...

_শীর্ষগুলি তৈরি করে, বিয়োগ করে -1-nএবং [ফলাফলটিকে একটি স্ট্যাক রেখে দেয়:

           v
       -1-n   -1
...  0    0    0    0    0  ...

:শীর্ষ দুইটি অদলবদল Iকরে এবং কিছুই করে না, যেহেতু স্ট্যাকের শীর্ষটি এখন শূন্য। !তারপরে বিটওয়াইস শীর্ষে শূন্যটিকে একটিতে উপেক্ষা করে -1এবং :শীর্ষ দুটি পিছনে অদলবদল করে। !তারপরে সামান্য দিকে শীর্ষে অবহেলা করে আবার -1-nফিরে যাওয়া n:

          v
          n
         -1   -1
...  0    0    0    0    0  ...

এখন আমরা এর উপর ভিত্তি করে শাখা করি Iযা আমাদের মূলটিতে প্রয়োগ করা হয় n:

  • যদি nনেতিবাচক হয় তবে আমরা একটি বাম স্ট্যাক সরানো এবং -nএকটি অন্তর্নিহিত শূন্যের সাথে শেষ করব । :অদলবদল করে, উপরে একটি শূন্য রাখে এবং ]শূন্যটিকে উপরে সরিয়ে নিয়ে যায় -1আমরা সবেমাত্র moved _তারপরে চূড়ান্ত স্ট্যাকের মতো বিয়োগ করে, বিয়োগ করে [-1 -1]এবং -1বেসটিকে -1উপেক্ষা করার কারণে কেবলমাত্র একটি আউটপুট is

  • যদি nশূন্য হয়, আমরা সরানো এবং :অদলবদল করব না , -1উপরে রেখে । ]তারপরে -1এটি ডানদিকের উপরে বাম দিকে সরায় -1এবং _চূড়ান্ত স্ট্যাকটি ছেড়ে [-1 0]শূন্য আউটপুট দেয় এবং বেস উপেক্ষা করে -1

  • যদি nইতিবাচক হয় তবে আমরা ডানদিকের একটি স্ট্যাকটি স্থানান্তর করি এবং -nএকটি দিয়ে শেষ করি -1:অদলবদল করে, -1উপরের অংশটি রেখে দেয় এবং ]এই -1ডানদিকে সরানো শূন্যের উপরে। _তারপরে বিয়োগ করে, 0 - (-1) = 1চূড়ান্ত স্ট্যাকের মতো দেওয়া এবং ছেড়ে দেওয়া [1], যা আউটপুট।


7

টিআই-বেসিক, 8 বাইট

median({1,Ans,~1

বিকল্প সমাধান (আরও পরামর্শ দিতে নির্দ্বিধায়):

max(~1,min(Ans,1               8  bytes
0:If Ans:Ans/abs(Ans           9  bytes
(Ans>0)-(Ans<0                 10 bytes

কী হওয়ার ~কথা?
কনর ও'ব্রায়েন

টিআই-বেসিকের বিয়োগ চিহ্নের মধ্যে পার্থক্য করতে @ কনরও'ব্রায়ান নেতিবাচক প্রতীক। আমি জানি যে সিমেটেক এসসিও এই টোকেনটিকে ~উপস্থাপন করতে ব্যবহার করে।
টিমটেক

ওহ ঠান্ডা. আমার কোন ধারণা ছিল না.
কনর ও'ব্রায়েন

@ কনরও ব্রায়ান ভাল, এখন আপনি জানেন। জিজ্ঞাসার জন্য ধন্যবাদ :)
টিমটেক

1
এটি বৈধ নয় - ইনপুট হিসাবে ব্যবহারেরAns ফলে বৈধ ডিফল্ট আই / ও পদ্ধতি হওয়ার মানদণ্ড পূরণ হয় না (এটি ডাউনভোটের দ্বিগুণ upvotes নেই - বর্তমানে এটি + 19 / -12 এ রয়েছে)।
মেগো

7

এমএটিএল , 6 বাইট

0>EGg-

ইনপুট একটি সংখ্যা বা একটি অ্যারে হতে পারে। ফলাফলটি হ'ল সংখ্যার সাথে মান বা একটি অ্যারে।

এটি অনলাইন চেষ্টা করুন! অথবা অ্যারের ইনপুট ব্যবহার করে বেশ কয়েকটি কেস পরীক্ষা করুন।

ব্যাখ্যা

এটি বিল্টিন সাইন ফাংশন ( ZS) ব্যবহার করা এড়িয়ে যায় ।

0>   % Take input implicitly. Push 1 if positive, 0 otherwise
E    % Multiply by 2
Gg   % Push input converted to logical: 1 if nonzero, 0 otherwise
-    % Subtract. Implicitly display

MATL চেয়ে দীর্ঘতর হয় মতলব এবং অক্টেভ !
অ্যাডম

4
উত্তরটিতে ZSযেমন বলা হয়েছে তেমন বিল্ট-ইনও তিনি ব্যবহার করতে পারতেন ।
স্টিভি গ্রিফিন

6

জেলি , 1 বাইট

TryItOnline!

মোনাডিক সাইন অ্যাটম , সম্পূর্ণ প্রোগ্রাম হিসাবে বা একটি monadic লিঙ্ক হিসাবে একটি পূর্ণসংখ্যার ইনপুট জন্য নির্দিষ্ট করা ঠিক কি করে (একটি যুক্তি গ্রহণ ফাংশন)।


6

গণিত, 4 বাইট

Sign

ঠিক টিনে এটি কী বলে


একটি বাইট সংরক্ষণ করুনsgn
অ্যাডম

3
ওল্ফ্রামআল্ফা ম্যাথমেটিকার মতো নয়; এতে অস্পষ্ট / প্রাকৃতিক ভাষার ইনপুটটির স্বয়ংক্রিয় ব্যাখ্যা রয়েছে।
গ্রেগ মার্টিন

সুতরাং আমি এটি একটি পৃথক উত্তর জমা করা উচিত?
অ্যাডম

আমার কাছে যুক্তিসঙ্গত মনে হচ্ছে ...
গ্রেগ মার্টিন

6

অক্টাভা, 26 24 বাইট

f=@(x)real(asin(x))/pi*2

এটি আমার প্রথম অষ্টাভে উত্তর, কোনও গল্ফিং টিপস প্রশংসা করা হয়!

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

এটি গ্রহণের জন্য ধারণাটি asinযেখানে এসেছে সে প্রশ্ন থেকেই আসে output the sign:)

ব্যাখ্যা

দ্রষ্টব্য: সংখ্যাটি দ্বারা ভাগ করা piএবং এটির দ্বারা 2গুণন করা সম্পূর্ণ সংখ্যা দ্বারা বিভাজনের সমতুল্যpi/2

কেস 0:

asin(0)ফলন 0। এর আসল অংশটি নেওয়া এবং এটিকে ভাগ pi/2করে আউটপুটকে কোনও পার্থক্য নেই।

কেস positive:

asin(1)ফলন pi/2asinকোন সংখ্যা বড় চেয়ে এর 1দেব pi/2+ + জটিল সংখ্যা। এর আসল অংশটি দেয় pi/2এবং দেয় দিয়ে ভাগ করে pi/2দেয়1

কেস negative:

asin(-1)ফলন -pi/2asinকোন সংখ্যা চেয়ে ছোট এর -1দেব -pi/2+ + জটিল সংখ্যা। এর আসল অংশটি দেয় -pi/2এবং দেয় দিয়ে ভাগ করে pi/2দেয়-1


@ লুইস মেন্ডো N will be an integerআমি ভাগ্যবান এটি প্রশ্নের মধ্যে বলেছে যে :)
ক্রিটিক্সী লিথোস

ওহ, আমি সেই অংশটি পড়িনি :)
লুইস মেন্ডো

1
সি ঠ ই বনাম ই দ!
flawr

f=বাকীটি যদি একটি বৈধ, পুনরাবৃত্ত ফাংশন এক্সপ্রেশন হয় তবে আপনার প্রয়োজন হবে না ।
সাইয়েস

@ কিয়েস দুঃখিত, তবে আমি বেনামে ফাংশন পছন্দ করি না
ক্রিটসি লিথোস

6

আসলে , 1 বাইট

s

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

এটি টিনের উপরে যা বলেছে তার অন্য একটি উদাহরণ - sসাইন ফাংশন।

বিল্টিন ছাড়া (4 বাইট):

;A\+

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

;A\ইনপুট দ্বারা ইনপুটটির পরম মানকে ভাগ করে। এটি -1নেতিবাচক ইনপুট এবং 1ইতিবাচক ইনপুটগুলির জন্য ফলাফল । দুর্ভাগ্যক্রমে, প্রকৃতপক্ষে ত্রুটি পরিচালনা করার কারণে (যদি কিছু ভুল হয়ে যায় তবে আদেশটি উপেক্ষা করা হবে), 0কারণ ইনপুট দুটি 0স্ট্যাকের উপর ফেলে দেয় leaves +এগুলি সংযুক্ত করে এটিকে সংশোধন করে (যা অন্য কোনও কিছুর সাথে ত্রুটি সৃষ্টি করে তাই এটি উপেক্ষা করা হয়)।


6

পিট, 188 53 46 41 বাইট

5bpjhbttttfttatraaearfjearoaearbcatsdcclq

অনলাইন দোভাষী এখানে উপলব্ধ।

এই পিট কোডটি স্ট্যান্ডার্ড করে (n>0)-(n<0), কারণ কোনও সাইন চেক অন্তর্নির্মিত নেই। আসলে, বিল্টিনের চেয়ে কম কোনও নেই, সুতরাং এই পদ্ধতির আরও সঠিক বিবরণ হবে (n>0)-(0>n)

উপরের পাঠ্যটি চিত্রটির প্রতিনিধিত্ব করে। দোভাষী পৃষ্ঠায় টেক্সট বাক্সে পেস্ট করে আপনি চিত্রটি তৈরি করতে পারেন। সুবিধার জন্য আমি নীচের চিত্রটি সরবরাহ করেছি যেখানে কোডেলের আকারটি 31 পিক্সেল। গ্রিডটি পাঠযোগ্যতার জন্য রয়েছে এবং এটি প্রোগ্রামের একটি অংশ নয়। আরও মনে রাখবেন যে এই প্রোগ্রামটি কোনও সাদা কোডেল অতিক্রম করে না; প্রোগ্রামের প্রবাহটি অনুসরণ করতে চিত্রের সীমানার চারপাশে রঙিন কোডেলগুলি অনুসরণ করুন।

ব্যাখ্যা

কার্যক্রম

Instruction    Δ Hue   Δ Lightness   Stack
------------   -----   -----------   --------------------
In (Number)    4       2             n
Duplicate      4       0             n, n
Push [1]       0       1             1, n, n
Duplicate      4       0             1, 1, in, in
Subtract       1       1             0, in, in
Duplicate      4       0             0, 0, in, in
Push [4]       0       1             4, 0, 0, in, in
Push [1]       0       1             1, 4, 0, 0, in, in
Roll           4       1             0, in, in, 0
Greater        3       0             greater, in, 0
Push [3]       0       1             3, greater, in, 0
Push [1]       0       1             1, 3, greater, in, 0
Roll           4       1             in, 0, greater
Greater        3       0             less, greater
Subtract       1       1             sign
Out (Number)   5       1             [Empty]
[Exit]         [N/A]   [N/A]         [Empty]

ফাইলসাইজকে আরও কমানোর জন্য, আমি আসলে ফাইলটি সংকুচিত করার পরিবর্তে প্রোগ্রাম (হাঁপা) বদলাতে চাই। আমি এমন একটি সারি সরিয়ে ফেলতে চাই যা এটি গল্ফ হয়ে নেমে ৩ 36 এ নামিয়ে আনতে পারে inter

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

আপনি যদি মনে করেন যে এটি পিটের চেতনার পরিপন্থী বা কোনও কারণে এটি নিয়ে আরও আলোচনা করতে চান, দয়া করে মেটা নিয়ে আলোচনাটি দেখুন


2
আমি বিশ্বাস করি পিটের সম্মেলনটি সমস্ত কোডেল গণনা করা ।
সুপারজেডি ২৪

@ সুপারজেডি ২২৪ মেটা পোস্টে এটি সিদ্ধান্ত নেওয়া হয়নি, ইমেজে অনেকগুলি বাইট মনে হচ্ছে যা আমি যাব।
মাইক বুফার্দেসি

6

পুশি , 7 বাইট

এটি সম্ভবত আমি আজব লেখা সবচেয়ে অদ্ভুত চেহারা প্রোগ্রাম ...

&?&|/;#

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

এটি ব্যবহার করে sign(x) = abs(x) / xতবে sign(0) = 0শূন্য বিভাগ ত্রুটি এড়াতে স্পষ্ট করে with

          \ Take implicit input
&?   ;    \ If the input is True (not 0):
  &|      \  Push its absolute value
    /     \  Divide
      #   \ Output TOS (the sign)

এই কাজ করে কারণ x / abs(x)হল 1 যখন এক্স ইতিবাচক ও হয় -1 যখন এক্স নেতিবাচক। যদি ইনপুট 0 হয়, প্রোগ্রামটি আউটপুট কমান্ডে লাফ দেয়।


4 বাইট (প্রতিযোগিতামূলক)

ছুটির কারণে এবং খুব বেশি সময় থাকার কারণে আমি পুষি ইন্টারপ্রেটারের সম্পূর্ণ পুনর্লিখন করেছি। উপরের প্রোগ্রামটি এখনও কাজ করে, তবে 0 / 0এখন 0 এ ডিফল্ট হওয়ায় নিম্নলিখিতটি সংক্ষিপ্ততর:

&|/#

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


1
আমি ব্যবহার সম্পর্কেও ভাবছিলাম abs, তবে এর সাথে কী করণীয় তা আমার কোনও ধারণা ছিল না 0। সাবাশ!
ক্রিটসি লিথোস

5

আর, 25 বাইট

'if'(x<-scan(),x/abs(x),0)

নম্বরটি STDIN এ নিয়ে যায়। তারপরে এটি শূন্য কিনা, যদি না হয়, x/|x|যা দুটি হয় তা 1প্রদান করে -1এবং 0 হলে আউটপুট দেয় x=0

এটি অবশ্যই কোনও বিল্টিন signঅবশ্যই ব্যবহার না করে ।


1
Builtin ব্যবহার অবশ্যই খাটো, কিন্তু কম মজা হল: sign(scan())
বিলিওব

দুঃখিত, জালিয়াতি এড়ানো স্পষ্টভাবে উল্লেখ করা উচিত
JAD

5

ভি 14 12 বাইট

ধন্যবাদ 2 ডি বাইটের জন্য ডিজেএমসিএমহেম। প্রতিস্থাপন করার জন্য একটি রেগ-প্রাক্তন ব্যবহার করে। ধরনের মজা, কারণ এটি কোনও অন্তর্নির্মিত নয়। আমার আরও মজাদার ফাংশন রয়েছে তবে এটি আমার প্রত্যাশা মতো কাজ করছে না।

ͨ-©½0]/±1

পরীক্ষার কেসগুলি যাচাই করুন

এটি কেবল অনুবাদ করে :%s/\v(-)=[^0].*/\11যার সাথে এক বা একাধিক এর সাথে মিলিত -হয় তবে 0 এর পরে যা কিছু সংখ্যক বার অনুসরণ করে। এটি প্রথম ম্যাচ (তাই হয় একটি -বা কিছুই নয়) এবং এ দিয়ে প্রতিস্থাপিত হয়েছে 1। রেজেক্স 0 এর সাথে মেলে না, যাতে এটি নিজেই থেকে যায়।

আরও মজার উপায় (21 বাইট)

é
Àé12|DkJòhé-òó^$/a

TryItOnline

এটি ইনফুটটিকে বাফারের পরিবর্তে আর্গুমেন্ট হিসাবে গ্রহণ করে।

é<CR> একটি নতুন লাইন .োকান।

Àযুক্তিটি ভি কোড হিসাবে চালান। a -কার্সারটিকে আগের লাইনে স্থানান্তরিত করবে এবং যে কোনও সংখ্যা পরবর্তী কমান্ডের জন্য গণনা হয়ে যাবে

é1সন্নিবেশ (গণনা) 1এর

2| দ্বিতীয় কলামে যান

D দ্বিতীয় কলাম থেকে সমস্ত কিছু মুছুন (কেবলমাত্র একটি অক্ষর রেখে)

kJ দুটি লাইন একসাথে যোগদান করুন।

òhé-òঅনুবাদ করে: " hé-বিরতি না হওয়া পর্যন্ত চালান "। যদি 1 দ্বিতীয় লাইনে থাকে তবে এইচ এর পরে অবিলম্বে এটি বিরতি দেয়। এটি যদি প্রথম লাইনে থাকে তবে এটি -ব্রেক করার আগে একটি প্রবেশ করিয়ে দেবে।

ó^$/aবাস্তবে দেখা যায় যে সংশোধন করা হয়েছে -1, 0, 1একটি ফাঁকা ছেড়ে চলে যেতে হবে, এবং যুক্তি রেজিস্টার সঙ্গে একটি ফাঁকা প্রতিস্থাপন করে।


আমি জানতাম আমার এই পৃষ্ঠাটি আরও ভাল করে পড়া উচিত ছিল। এটা আসলে খাটো নয় - আমি 0 ভুলে গেছি, কিন্তু আমি সংখ্যায় নিতে আপনার অবশ্যই একটি আর্গুমেন্ট হিসাবে এবং তারপর চেষ্টা ছিল Àé1। ধনাত্মক সংখ্যার একটি স্ট্রিং দেয়, negativeণাত্মক সংখ্যাটি একটি সারি উপরে একটি স্ট্রিং দেয় এবং 0 কিছু দেয় না। নেতিবাচক সংখ্যা বিটটি কাজ করে নি À, তবে করেছেd$@"
nmjcman101

আহ। ভাল যে কারণটি কাজ করে না কারণ এটির জন্য আর কোনও সারি নেই। যদি আপনি যুক্ত করেন তবে é<cr>এটিতে দুটি খালি লাইন থাকবে এবং তারপরে এটি কার্যকর হয় । আমি নিশ্চিত নই যে আপনি
এটির

আমার কাছে আরও একটি লাইন ছিল, কেবল আমার মন্তব্যে স্পষ্টভাবে তা বলা হয়নি। আপনি --যুক্তি কি যুক্ত করেছেন?
nmjcman101

1
এর অর্থ "বিকল্পগুলির শেষ"। যেহেতু -6একটি পতাকা দিয়ে শুরু হয়, ডকপ্ট (কমান্ড লাইনের বিকল্পগুলির জন্য পাইথন লাইব্রেরি) মনে করে যে এটি একটি আর্গুমেন্টের চেয়ে কমান্ড-লাইন পতাকা। যোগ করার পদ্ধতি --মাত্র সংকেত এটি একটি আর্গুমেন্ট না একটি বিকল্প আছে। অন্যথায়, এটি অবৈধ কমান্ড লাইন অনুরোধের কারণে চলবে না।
ডিজেএমসিএমহেম

5

সি #, 16 15 বাইট

নীলকে উন্নত সমাধান ধন্যবাদ

n=>n>0?1:n>>31;

বিকল্পভাবে, অন্তর্নির্মিত পদ্ধতিটি 1 বাইট দীর্ঘ হয়:

n=>Math.Sign(n);

পরীক্ষার কেস সহ সম্পূর্ণ প্রোগ্রাম:

using System;

public class P
{
    public static void Main()
    {
        Func<int,int> f =
        n=>n>0?1:n>>31;

        // test cases:
        for (int i=-5; i<= 5; i++)
            Console.WriteLine(i + " -> " + f(i));
    }
}

2
n>>31পরিবর্তে চেষ্টা করুন n<0?-1:0
নিল

1
বিল্টিন এমনকি সংক্ষিপ্ত সমাধান না হলেও এটি কিছুটা দুঃখজনক।
মেগো

আসুন ধরা যাক সি # এটি বরং
ভার্জোজ

1
ক) আমি মনে করি না যে ;ল্যাম্বডা একটি বিবৃতি হিসাবে একটি ল্যাম্বডা হিসাবে আপনাকে অনুসরণ করার দরকার রয়েছে । বি) হবে Math.Signবা Math::Signবা অনুরূপ কিছু একটি বৈধ জমা হতে পারে? নিশ্চিত না যে কীভাবে সি # পদ্ধতিগুলি পরিচালনা করে। মূলত, x = Math.Sign;যদি xসঠিক টাইপ দিয়ে আরম্ভ করা হয় তবে একটি বৈধ সি # বিবৃতি হবে ?
সাইয়েস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.