কোডগল্ফ - প্রধান বা লেজ


26

নির্দেশনা

একটি অজানা ইনপুট স্ট্রিং দেওয়া iহয় একটি মান সঙ্গে মাথা বা মুদ্রার উলটা পিঠ ফিরে 1জন্য মাথা বা -1জন্য মুদ্রার উলটা পিঠ সবচেয়ে কম কোড সহ।

গল্ফড কোড (55 বি) নমুনা:

if(i == "heads"){
    print(1);
}else{
    print(-1);
}

নমুনা গল্ফড কোড (16 বি):

print("t">i||-1)


জাভাস্ক্রিপ্ট উদাহরণস্বরূপ ব্যবহার করা হয়েছিল কিন্তু এটা না প্রয়োজন । দুঃখিত এটি যদি বেশিরভাগ ব্যবহারকারীর পক্ষে খুব সহজ হয় তবে এটি উন্নত করা যেতে পারে।


14
পিপিসিজিতে আপনাকে স্বাগতম! এটি একটি আকর্ষণীয় চ্যালেঞ্জ হতে খুব সহজ। ভবিষ্যতে, স্যান্ডবক্সে চ্যালেঞ্জগুলি পোস্ট করার বিষয়ে দয়া করে বিবেচনা করুন , যেখানে সেগুলি সরাসরি পোস্ট করার আগে তারা প্রতিক্রিয়া পেতে পারে।
অ্যালেক্স এ।

1
6 টি উত্তর, আসলে খুব খারাপ চ্যালেঞ্জ নয়। আবার চেষ্টা করুন
edc65

4
4 টি upvotes এবং 5 টি ডাউনভোটে, আপনার প্রশ্নটি সত্যই অপ্রিয় ছিল না; এটি সবেমাত্র মিশ্র পর্যালোচনা পেয়েছে। হাতের কাজটি সামান্য বেসিক হলেও এটি এখনও পর্যন্ত ভালভাবে সংজ্ঞায়িত এবং আকর্ষণীয় 7 টি উত্তর দেওয়া হয়েছে যা বিভিন্ন ভিন্ন পদ্ধতির বৈশিষ্ট্যযুক্ত। প্রথম চেষ্টার জন্য এটি খারাপ নয়।
ডেনিস

7
আমি এখনই খুব বিভ্রান্ত, গতকাল -৪, এখন +4, এটি নিশ্চিত স্ট্যাকওভারফ্লো নয়: পি
জুয়ান কর্টস

10
আমি যুগে যুগে এই জাতীয় সংক্ষিপ্ত চ্যালেঞ্জের অপেক্ষায় ছিলাম, বেশিরভাগ চ্যালেঞ্জগুলি আমার মতো নবজাতকের পক্ষে খুব দীর্ঘ এবং জটিল are
শান ল্যাথাম

উত্তর:


11

সিজেম, 4 বাইট

I'e#

Iধরে নেওয়া যায় যে চলকটি ইনপুটটি ধরে রাখে, যেহেতু iসিজেমে কোনও বৈধ সনাক্তকারী নয়।

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

এটি জাভাস্ক্রিপ্ট কোডের সমতুল্য I.indexOf('e')


সম্ভবত এই চ্যালেঞ্জের জন্য অপরাজেয়।
অ্যালেক্স এ

1
দুঃখিত আমি প্রয়োজনীয়তাগুলি যথেষ্ট বুঝতে পারি নি এবং এই প্রশ্নটি দিয়ে নিজেকে বোকা বানাচ্ছি। আমি ফিরে গিয়ে এখনই লুকিয়ে থাকব
জুয়ান কর্টেস

আপনি কেন এতে অন্তর্ভুক্ত করবেন pনা? এটি সিজেমে স্ট্যান্ডার্ড না?
টিম

@ টিম সিজেএম সর্বদা প্রোগ্রামের স্ট্যাকের সামগ্রীগুলি স্বয়ংক্রিয়ভাবে মুদ্রণ করে।
মার্টিন এন্ডার

2
@ টিম: প্রশ্নটি 1 বা -1 ফিরে আসতে বলেছে , তাই আমি ধরে নিয়েছি স্ট্যাকের উপর নম্বরটি রাখা ভাল হবে। pপ্রয়োজনীয়তা নেই তা দেখানোর জন্য আমি পার্মালিঙ্ক সম্পাদনা করেছি ।
ডেনিস

17

সি, 18 বাইট

খুব সহজ, তবে আসুন এটি কেবল মজাদার জন্য ...

puts("-1"+*i/8%2);

স্ট্রিং দেওয়া হয়েছে এটি নতুন লাইনের সাথে পিছনে char *i1 headsএবং -1 প্রিন্ট করে tails

ব্যাখ্যা

সিতে, "-1" + 11 টি চরিত্রকে এগিয়ে দেখায়, তাই এটি একইরকম "1"। প্রথম চরিত্রগুলি একবার দেখে নেওয়া যাক:

"heads"[0] = 'h' = 104 = 0b01101000
"tails"[0] = 't' = 116 = 0b01110100

যদি আমরা শূন্য থেকে শুরু করে ডানদিকের এক থেকে বিটগুলি গণনা করি, বিট 3টি 1 ইন 1 headsএবং 0 ইন tails: সংক্ষিপ্ত "-1"করে সঠিক স্ট্রিং দেয়। দেখে মনে হচ্ছে:

"-1" + ((i[0] >> 3) & 1)

এখন, বিকল্প i[0]সঙ্গে *iএবং ক্ষমতা-অফ দুই বিভাগের সাথে সঠিক শিফট কিছু বাইট সংরক্ষণ করুন। অকেজো বন্ধনী অপসারণ:

"-1" + (*i / 8 & 1)

এখন, & 1প্রতিস্থাপন করা যেতে পারে % 2। চরিত্রের গণনা একই, তবে মুল্যুলাসের অগ্রাধিকার রয়েছে, ফলে প্রথম বন্ধনী ছাড়তে পারে। হোয়াইটস্পেস সরান:

"-1"+*i/8%2

বোনাস

আমি মনে করি সি এর মধ্যে পূর্ণসংখ্যা 1 বা -1 (স্ট্রিং নয়) পাওয়ার সবচেয়ে সংক্ষিপ্ততম উপায়:

18-*i/6

ব্যাখ্যা:

'h' = 104
't' = 116

('h' + 't') / 2 = 110
110 - 'h' =  6
110 - 't' = -6

(110 - 'h') / 6 =  1
(110 - 't') / 6 = -1

Apply distributive property (integer division):
18 - 'h' / 6 =  1
18 - 't' / 6 = -1

1
সুন্দর, এটি পছন্দ
জুয়ান কর্টেস

11

রুবি, 8 (আউটপুট ছাড়াই 6)

p ?t<=>i

রকেটশিপ অপারেটর!


কাজের জন্য স্পষ্টতই সঠিক সরঞ্জাম।
প্রিমো

9

পিএইচপি - 11 বাইট

<?=1-$i^=F;

এটি কাজ করে কারণ 'tails' ^ 'F''2'এবং 'heads' ^ 'F''.', যা যখন পূর্ণসংখ্যা হিসাবে টাইপ করা হয় 0

আপনি এই সমাধানটি (বা নীচের যে কোনও একটি) নিম্নলিখিত পদ্ধতিতে পরীক্ষা করতে পারেন:

<?php foreach(['heads', 'tails'] as $i): ?>
 <?=1-$i^=F;
endforeach; ?>

আইডিয়ন লিঙ্ক


বিকল্প

15 : <?=1-md5($i)%3;
16 : <?=md5($i)[5]-5;
16 :<?=-crc32($i)%5;


সংক্ষিপ্ত সংস্করণটি দিয়ে আমি সর্বদা একটি 1 পেয়ে যাচ্ছি, এক্সওর দিয়ে এটি কী করে তা বোঝানোর জন্য যত্নশীল?
জুয়ান কর্টস

@ জুয়ানকোর্টস আমি একটি ব্যাখ্যা এবং আইডিয়নের একটি লিঙ্ক যুক্ত করেছি।
primo

2
এখন বাক্সের বাইরে ভাবছি!
ডেনিস

6

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

cos(πʳinString(Ans,"t

সহজবোধ্য। "টি" "লেজ" এর 1 অবস্থানে, তবে "টি" স্ট্রিং "হেডস" তে নেই, সুতরাং ইনস্ট্রিং (লেজগুলির জন্য 1 এবং মাথাগুলির জন্য 0 প্রদান করে)।

যদি আপনার ক্যালকুলেটরটি রেডিয়ান মোডে থাকে (কোনও গণিতবিদ হিসাবে হওয়া উচিত), এটি কেবল নয় বাইট লাগে:

cos(πinString(Ans,"t

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


এটা সত্যিই দারুন. আপনার বাইট গণনা বন্ধ আছে, যদিও - মহাকাশ (, π এবং রেডিয়ান প্রতীক সবই একটি বাইট, তাই এটি আসলে 8-9 বাইট)
এমআই রাইট

1
tএবং inString(প্রতিটি দুই বাইট হয়।
lirtosiast

ওহ, আমি ছোট হাতের অক্ষর দুটি বাইট হওয়ার কথা ভুলে যাতাম। তাহলে কখনো কিছু মনে করো না.
এমআই রাইট

5

বিদারণ , 26 21 বাইট

O/';'1
"S@]_"-
R? <tL

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



4

পাইথ - 4 বাইট


 xz"e

মাথা বা লেজ দিয়ে চালান । হিসাবে iহয় intPyth, এই ব্যবহারসমূহ মধ্যে zপরিবর্তনশীল নাম, যা কোন ব্যবহারকারীর ইনপুট রয়েছে হিসাবে। এটি পাইথনের সমতুল্য print(z.find("e")), সুতরাং @ ডেনিসের পদ্ধতিটি ব্যবহার করে।


4

ভিবিএ (এক্সেল), 12 বাইট

গল্ফিংয়ের চমত্কার কিছু নয়, ভিবিএর সাথে যথাযথ প্রোগ্রামিং ভাষার কাছে যে কোনও জায়গায় যাওয়ার চেষ্টা করা মজাদার ...

?13-asc(i)/6

আমি স্ট্রিং, এবং এটি কেবল প্রথম অক্ষরের ASCII মানটি ব্যবহার করে 6 দ্বারা বিভক্ত হয়ে 1 বা -1 দিতে 13 থেকে বাদ পড়ে। খুব সহজ.

উদাহরণ তাত্ক্ষণিক উইন্ডোতে চালানো (ইনপুট ভেরিয়েবল সেট করতে 10 অতিরিক্ত বাইট):

i="Heads":?13-asc(i)/6
 1

4

সি, 22 বাইট

puts(*i>'h'?"-1":"1");

আমাকে এই সম্পর্কে বলার জন্য ক্রেডিটগুলি @TheE এর কাছে যায় !

ব্যাখ্যা:

স্ট্রিংয়ের প্রথম অক্ষরটি এর চেয়ে বেশি 'h'হলে স্ট্রিংটি "-1"মুদ্রিত হয়। অন্যথায়, স্ট্রিং "1"মুদ্রিত হয়। নোট করুন যে এই পদ্ধতির সাথে একটি নতুন পেছনের চরিত্রটি আসে।


পুরানো সংস্করণ (25 বাইট):

printf("%d",*i>'h'?-1:1);

ব্যাখ্যা:

স্ট্রিংয়ের প্রথম অক্ষরটি যদি বড় হয় 'h', -1 মুদ্রিত হয়। অন্যথায়, 1 মুদ্রিত হয়।


আমি কেবল আগেই বলেছি, টাইপ চর হিসাবে আমি ব্যবহার করুন, আসল সংজ্ঞাটি এই রিটার্নের মতো 1 মাইলের বেশি হবে - (- 1) ** আই / 16
এএম

@ আগওয়া 1001, তবে এটি 6 hএবং 7 এর জন্য প্রত্যাবর্তন করবে t
স্পিক্যাট্রিক্স

ওহ আমি ভুলে গেছি, আমাকে শক্তি ব্যবহার করতে হবে: p
Abr001am

কুল লোক দুর্ভাগ্যক্রমে সি এর গাণিতিক ক্রিয়াকলাপ নেই তাই আপনাকে -1 * পাও (-1, * i / 16) ব্যবহার করতে হবে যা অন্যদিকে অজগর এবং মতলব ব্যবহার করে ** এবং ^

1
@CoolGuy রাখে ব্যবহার করবে puts(*i>'h'?"-1":"1");ভাল না? (22 বাইট)
ইউয়ানজট

4

Tr: 17 13 টি অক্ষর

(বা 14 10 আপনি যদি কেবল যুক্তি গণনা করেন ...)

tr -s ta-s -1

নমুনা রান:

bash-4.3$ tr -s ta-s -1 <<< heads
1

bash-4.3$ tr -s ta-s -1 <<< tails
-1

সংক্ষিপ্ত বর্ণনা:

tr প্রতিলিপিটির অর্থ দাঁড়ায়, এর অর্থ, প্রথম যুক্তিতে প্রাপ্ত ইনপুটটির প্রতিটি অক্ষরকে দ্বিতীয় তর্কটিতে একই অবস্থানে অক্ষরের সাথে প্রতিস্থাপন করে:

tr ta -1 <<< tails         # replaces t ⇢ -, a → 1
⇒ -1ils

প্রথম যুক্তি যদি দীর্ঘ হয় তবে দ্বিতীয় তর্কটিতে অবস্থানগত মিল ছাড়াই অক্ষরগুলিকে দ্বিতীয় যুক্তির শেষ চরিত্রের সাথে প্রতিস্থাপন করা হয়:

tr tals -1 <<< tails       # replaces t ⇢ -, a → 1, l → 1, s → 1
⇒ -1i11

যখন -s( --squeeze-repeats) বিকল্প ব্যবহার করা হয়, ধারাবাহিক অক্ষর যা একই অক্ষর দিয়ে প্রতিস্থাপিত হবে একবার প্রতিস্থাপিত করা হয়:

tr -s tals -1 <<< tails    # replaces t ⇢ -, a → 1, l+s → 1
⇒ -1i1

সুতরাং আমরা যদি "লেজ" -র সমস্ত অক্ষর গণনা করি তবে আমাদের যা প্রয়োজন তা আমরা পেয়েছি:

tr -s tails -1 <<< tails    # replaces t ⇢ -, a+i+l+s → 1
⇒ -1

"মাথা" এর জন্য একই, তবে মাইনকে গ্রাস করার জন্য "টি" কে সামনে রাখতে হবে (চরিত্রগুলি বর্ণমালার অনুসারে সৃজনশীলতার জন্য সাজানো):

tr -s taedhs -1 <<< heads   # replaces h+e+a+d+s → 1
⇒ 1

"লেজ" এবং "মাথা" এর সমস্ত অদ্ভুত অক্ষরগুলি একক প্রথম যুক্তিতে "টি" সামনে রেখে চূড়ান্ত সমাধানের দিকে নিয়ে যায়:

tr -s tadehils -1 <<< tails # replaces t → -, a+i+l+s → 1
⇒ -1

tr -s tadehils -1 <<< heads # replaces h+e+a+d+s → 1
⇒ 1

অক্ষর, একটি বিরতি enumerating এড়াতে থেকে - থেকে বিন্যাস পরিবর্তে ব্যবহার করা যাবে।


এটা ব্যাখ্যা করতে যত্ন?
হুয়ান কর্টেস

এটি বিএসডি / জিএনইউ ধরে নিয়েছে tr। POSIXly:tr -s ta-s '-[1*]'
SCH

4

8088 সমাবেশ, আইবিএম পিসি ডস, 17 বাইট

00000000: b402 0826 8200 7a04 b22d cd21 b231 cd21  ...&..z..-.!.1.!
00000010: c3

unassembled:

B4 02           MOV  AH, 02H        ; DOS API display char function     
08 26 0082      OR   DS:[82H], AH   ; set parity flag from input 
7A 04           JPE  HEADS          ; if even, heads - display just '1'
B2 2D           MOV  DL, '-'        ; otherwise first display a '-''
CD 21           INT  21H            ; output DL to console
            HEADS: 
B2 31           MOV  DL, '1'        ; display the '1'
CD 21           INT  21H            ; output DL to console
C3              RET

ব্যাখ্যা:

প্রথম চরটি 'h'(বাইনারিগুলির সংখ্যা এমনকি 1) বা একটি 't'(বাইনারিগুলির বিজোড় সংখ্যা ) তা নির্ধারণের জন্য সিপিইউ'র সমতা পতাকা ব্যবহার করুন 1। এটি ASCII তে চরের তুলনায় একটি বাইট সংরক্ষণ করে sa

কমান্ড লাইন থেকে ইনপুট, কনসোল আউটপুট।

ইনপুট আউটপুট:

এখানে চিত্র বর্ণনা লিখুন



4

শেল (পোর্টেবল / পসিক্স), 16 বাইট

expr $i : he - 1

এটি অনলাইন চেষ্টা করুন!
ধন্যবাদ @ StéphaneChazelas মধ্যে unix.stackexchange.com

অন্যান্য সমাধান চেষ্টা করেছে:
echo $[30#$i%7-1] # 17 bytes but only in bash, zsh. এটি অনলাইনে চেষ্টা করুন!
echo $((30#$i%7-1)) # 19 bytes but only bash,ksh,zsh. এটি অনলাইন চেষ্টা করুন!
he=2;echo $[${i%a*}-1] # 22 bytes But only in bash,zsh . এটি অনলাইন চেষ্টা করুন!
a=${i%h*};echo ${a:+-}1 # 23 . সুবহ . এটি অনলাইন চেষ্টা করুন!
he=2;echo $((${i%a*}-1)) # 24 bytes . সুবহ . এটি অনলাইন চেষ্টা করুন!
IFS=h;set $i;echo ${1:+-}1 # 26 (change IFS) . সুবহ . এটি অনলাইন চেষ্টা করুন!
(IFS=h;set $i;echo ${1:+-}1) # 28 (subshell) . সুবহ . এটি অনলাইন চেষ্টা করুন!
(IFS=h;set $i;echo $(($#*2-3))) # 31 bytes . সুবহ . এটি অনলাইন চেষ্টা করুন!

দ্রষ্টব্য: dashপোর্টেবল শেল পরীক্ষকের যুক্তিসঙ্গত নমুনা হিসাবে ব্যবহার করা।

  • expr $i : he - 1কাউন্টিং করে কাজ করে কত অক্ষর মেলে heদিয়ে $i : he। একটি headsম্যাচ 2এবং একটি tailsম্যাচ 0 (কিছুই নয়) .Then substracting 1সঙ্গে - 1

  • $[30#$i%7-1]স্ট্রিংটিকে পূর্ণসংখ্যায় রূপান্তর করে কাজ করে। 30 টি বেস এবং 7 দ্বারা মোড headsএবং 2 এর মধ্যে 2 এর পার্থক্য পেতে নির্বাচিত হয়েছিল tails। তারপর 1 ধর্মান্তরিত সংখ্যার বিয়োগ 1এবং -1
    নোট করুন যে a $[...]হ'ল পাটিগণিতের প্রকাশের এক প্রত্নরূপ যা $((...))কেবল কয়েকটি শেলের মধ্যে বৈধ।

  • he=2;echo $[${i%a*}-1]কিছু মানের একটি ভেরিয়েবল তৈরি করে এবং তারপরে পরিবর্তনশীল (পাঠ্য মান থেকে) প্রসারিত করতে গাণিতিক সম্প্রসারণ ব্যবহার করে কাজ করে। ${i%a*}ধর্মান্তরিত headsকরার heএবং tailsকরতে t(যে, একটি পরিবর্তনশীল হিসাবে, 0 একটি মান আছে)।

  • IFS=h;set $i;echo ${1:+-}1দুটি পদক্ষেপে কাজ করে। থেকে IFS সেট hবিরতি unquoted $iমধ্যে set $iচরিত্র দ্বারা বিভক্ত অংশে h, headsবিভক্ত করা হয় ''এবং 'eads', এইভাবে সেট $1নাল করতে। tailদ্বারা ভাগ করা হয় না h, এইভাবে $1সমান করে tails। তারপরে, মানটি নন-নাল (যেমন হিসাবে ) বা কিছুই (শূন্যের মতো) হয় তবে ${1:+-}একটি উত্পন্ন করে । সেই চিহ্নটি (বা কিছুই নয়) সাথে একত্রিত হয় ।-$1tails$11

  • (IFS=h;set $i;echo $(($#*2-3)))একইভাবে কাজ $#করে তবে স্ট্রিংটি যে অংশে $iভেঙে গেছে সেগুলির সংখ্যা ( ) ব্যবহার করুন ।


3

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

print'-1'['t'>i:]

'heads'এর চেয়ে কম 't', সুতরাং এটি True == 1প্রথম অক্ষরের পরে স্ট্রিংটি মূল্যায়ন করে এবং মুদ্রণ করে। 'tails'এর চেয়ে বড় 't', তাই এটি মূল্যায়ন False == 0করে পুরো স্ট্রিংটি মুদ্রিত হয়।

অন্তর্নিহিত মুদ্রণ সহ আমরা যদি কমান্ড লাইন থেকে এটি করি তবে তা কেবল হয়ে যায়:

'-1'['t'>i:]

... 12 বাইটের জন্য, তবে এটি আউটপুটে একক উদ্ধৃতি যুক্ত করে।


3

কিউ বেসিক, 11 বাইট

এটি আমার লেখা কিউ বেসিকের সংক্ষিপ্ততম অংশ হতে পারে।

c=i>"t
?c^c

ব্যাখ্যা:

উপরেরটি বেশ ভারীভাবে গল্ফ করা কিউ বেসিক is একবার অটোফর্মেটর এটির মাধ্যমে হয়ে গেলে, এটি এর মতো দেখতে পাবেন:

c = i > "t"
PRINT c ^ c

প্রথম লাইনটি স্ট্রিংটির iসাথে তুলনা করে "t"। যদি iহয় "heads", i > "t"মিথ্যা এবং c = 0। যদি iহয় "tails", i > "t"সত্য এবং c = -1। হ্যাঁ, -1কিউ বেসিকের বুলিয়ান সত্যের জন্য ডিফল্ট মান!

দ্বিতীয় লাইন মানচিত্র -1থেকে -1এবং 0থেকে 1একটি গণিত কৌতুক মাধ্যমে: (-1)^(-1) == 1/(-1) == -1এবং 0^0, যদিও টেকনিক্যালি গাণিতিকভাবে অনির্ধারিত, আয় 1

এই কোডটির iস্পষ্টভাবে স্ট্রিং ভেরিয়েবল হিসাবে ঘোষণা করা দরকার ; অন্যথায়, এটি হতে হবে i$। সম্পূর্ণ পরীক্ষার প্রোগ্রাম ( কিউবি 64 তে পরীক্ষা করা ):

DIM i AS STRING
DATA heads, tails

FOR x = 1 TO 2
READ i

c=i>"t
?c^c

NEXT x

3

গাইয়া , 5 4 বাইট

'eI(

অনুরূপ ডেনিস 'CJam উত্তর , সূচী খুঁজে বের করে eইনপুট স্ট্রিং

একটি বাইট সংরক্ষণ করা হয়েছে যেহেতু আমি বুঝতে পারি নি যে পর্যাপ্ত পরিমাণ স্ট্যাকের মান না থাকলে ইনপুট স্বয়ংক্রিয়ভাবে একটি আর্গুমেন্ট হিসাবে ব্যবহৃত হয়েছিল

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

'e  Push e
I   Index of e in the the input. 2 if heads, 0 if tails
(   Subtract One
Stack gets automatically outputted

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


3

বাশ , 22

echo $[0x${1:1:1}/2-6]

২ য় অক্ষর ( eবা a) নেয় এবং এটিকে হেক্স ডিজিট (14 বা 10) হিসাবে ব্যাখ্যা করে, তারপরে সঠিক উত্তর পেতে 2 কে ভাগ করে 6 টি বিয়োগ করুন।

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



1
ব্যাশের জন্য, ব্যবহার করুন: echo $[30#$i%7-1]কেবল 17 বাইট। :-)
ইসহাক

3

এড , 27 25 21 বাইট

edআমাকে মাথা ব্যাথা দিয়েছে অবশেষে এটি @ed1confটুইটার এবং কিছু উঁকি দেওয়া থেকে সহায়তা নিয়ে বের করে আনে unix.se। আপনি কেবল এইগুলির সাথে জিনিসগুলি মেলাতে পারবেন না s/re/newtext/, আপনাকে এটির সাথে উপস্থাপন করতে হবে gঅন্যথায় edএকটি দুঃখজনক প্যাকগুলি। এটি 50 বছরের পুরানো ইউনিক্স প্রোগ্রামের মতো "আমার লনটি নামা" বলার মতো।

g/t/s//-
,s/\w\+/1
w

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

-2 বাইটগুলি চূড়ান্ত /এস
-4 বাইটগুলি sedবাদ দিয়ে @ মানাটওয়ার্ককে (এবং যার উত্তর আমি সাহিত্যে লিখেছি )
পুরানো সংস্করণ:
g/t/s//- g/\w\+/s//1 wq .


1
তবে আপনার ঠিক প্রথম কমান্ডের জন্য অ্যাড্রেস ট্রিক দরকার, কারণ 2 য় কখনও ব্যর্থ হবে না। এবং স্পষ্ট করে qবলার দরকার নেই , যখন নিজে থেকে কিছুই করার থাকে না তখন তা নিজেই ছেড়ে দেবে। এবং আপনার কেবল তাদের পরে একটি নতুন লাইন দরকার, "।" (বা "রোব্লোগিক" ...) অপ্রয়োজনীয়। এটি অনলাইন চেষ্টা করুন!
manatwork

আহ্ ধন্যবাদ আমি ঘরে ফিরে আপনার পরামর্শগুলি চেষ্টা করব। পাব এখন 👍🏼
রোব্লগিক

2

পাইথন, 20 বাইট

print(('h'in i)*2-1)

এটি Falseনা Trueহলে এবং যদি হয় তবে এটি প্রত্যাবর্তন করবে। পাইথন Falseএবং 0একই আছে, এবং Trueএবং 1হিসাবে ভাল আছে।

তাই:

True (1) * 2 -1 = 2-1 = 1
False (0) * 2 - 1 = 0-1 = -1

2

গল্ফ্লুয়া 25 20 18

w(I.r():f'h'&1|-1)

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

একটি লুয়া সমতুল্য হবে

io.write(io.read():find('h') and 1 or -1)

2

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

f('h':_)=1
f _= -1

চিঠিটি দিয়ে শুরু হওয়া প্রতিটি স্ট্রিং hম্যাপ করা হয় 1, অন্য সকলকে -1


2

সেড: 16 টি অক্ষর

s/t/-/
s/\w\+/1/

নমুনা রান:

bash-4.3$ sed 's/t/-/;s/\w\+/1/' <<< 'heads'
1

bash-4.3$ sed 's/t/-/;s/\w\+/1/' <<< 'tails'
-1

ভাল, আমি আমার edসমাধানের জন্য আপনার রেজেক্সটি ব্যবহার করেছি , তবে এটি এখনও 23 বাইট লাগল, কারণ edএটি পুরানো এবং ক্ষুধার্ত!
রোব্লগিক

\wএবং \+যদিও জিএনইউ এক্সটেনশন।
sch




2

ডিসি , 8 বাইট

?z2*1r-p

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

এরপরে আমরা স্ট্যাকের দৈর্ঘ্য পেতে "জেড" ব্যবহার করি এবং সঠিক উত্তরগুলি পেতে গাণিতিকভাবে ফিডল।

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


2

ত্রিভুজাকার , 10 বাইট

F.~%.7/-_<

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

একটি অক্ষর ইনপুট এর ASCII মান 7. দ্বারা ভাগ করে 15. থেকে ভাগফলকে 15 থেকে বিয়োগ করে the এটি কাজ করে কারণ ত্রিভুজুলার কেবল পূর্ণসংখ্যা বিভাগ পরিচালনা করতে পারে। সুবিধাজনকভাবে, "এইচ" এর মান 104, যা 14 হয় যখন পূর্ণসংখ্যা 7 দ্বারা বিভক্ত হয়; "টি" 116, যা 16 হয় যখন পূর্ণসংখ্যা 7 দ্বারা ভাগ হয়।

Ungolfed / ব্যাখ্যা:

   F
  . ~
 % . 7
/ - _ <
---------------------------------------------------------------
F                 - Push 15 to Top of Stack
 ~                - Read a character from input, push its value to ToS
   7              - Push 7 to ToS
     <_           - Change directions, then pop ToS-1 and ToS, push their integer quotient
        -         - Pop ToS-1 and ToS, push their difference
          %       - Print ToS as an integer

পূর্ববর্তী সংস্করণ (14 বাইট):

~\81|m/,!<.>i%

ইনপুট থেকে একটি অক্ষর পড়ুন; যদি সেই চরিত্রের ASCII মান 8 দিয়ে বিভক্ত হয় তবে তার বাকী, মুদ্রণ -1 থাকে, অন্যথায় 1 মুদ্রণ করে।


2

কেগ ,8 12 8 বাইট

_d=2*1-.

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

ব্যাখ্যা (বাক্যবহির্ভূত অবৈধ)

_        Take input and discard the last item
 d=      If the top of the stack is d:
   2*    Re-set the top of the stack as 2
     1-  Decrement the top of the stack by 1
       . Explicitly output the top of the stack

-4 বাইট ধন্যবাদ manatwork ধন্যবাদ


কিছু টিআইও ইন্টারপ্রেটার সংস্করণ পার্থক্য থাকতে পারে? দেখে মনে হচ্ছে এটি "মাথা" বা "লেজ" দুটিকেই পরিচালনা করে না।
manatwork

এখন আমি প্রোগ্রামটি ঠিক করেছি।

কিছু টিআইও ইন্টারপ্রেটার সংস্করণ পার্থক্য থাকতে পারে? দেখে মনে হচ্ছে এটি অন্তর্নিহিতভাবে ইনপুট নেয় এবং এটিকে অকার্যকর ডেটা প্রক্রিয়া করার যে কোনও প্রয়াসে এটিকে বিপরীত করে দেয়, এটিকে কাজ ছাড়াই করে তোলে ^
manatwork

বিটিডাব্লু, আপনার 2 টি হিসাবে "টি" অবধি 4 টি অক্ষর ফেলে দেওয়ার দরকার নেই "ডি" বা "এল" ইতিমধ্যে আপনি কোন ইনপুট পেয়েছেন তা সনাক্ত করে। কেবল স্পষ্টভাবে আউটপুট দিতে হবে যাতে স্ট্যাকের মধ্যে অপসারণযোগ্য ইনপুটটি ছেড়ে যেতে পারে: এটি অনলাইনে চেষ্টা করুন!
manatwork

আমি মনে করি আমি "রেজি" তে স্যুইচ করে এখনও বাইট -1 করতে পারি: টিআইও!
একজন

1

ভিটসি , 13 বাইট

তো কী, আমি পার্টির জন্য দেরি করছি। ¯ \: _ (ツ): _ / ¯

zv&v'h'=)i1rN
z             Grab all input.
 v            Capture the top item (h or t) as a temp variable.
  &           Generate new stack, move to it.
   v'h'=      Test if the variable is h.
        )i    If it isn't, push -1.
          1   Push 1.
           r  Reverse the stack.
            N Print out the top item as a number.
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.