কোনও সংখ্যা 13 দ্বারা বিভাজ্য কিনা তা নির্ধারণ করুন (13 টি নিজে ব্যবহার না করে) [বন্ধ]


31

আপনার চ্যালেঞ্জ, আপনি যদি এটি গ্রহণ করার সিদ্ধান্ত নেন তবে হ'ল একটি হ'ল "হ্যাঁ" আউটপুট এমন একটি ক্রিয়াকলাপ বা একটি প্রোগ্রাম তৈরি করা যদি কোনও প্রদত্ত সংখ্যা 13 দ্বারা বিভাজ্য হয় এবং যদি তা না হয় তবে "না" আউটপুট দেয়।

বিধি:
- আপনাকে কোথাও 13 নম্বর ব্যবহার করার অনুমতি নেই।
- 13 এর জন্য কোনও কপ-আউট প্রতিশব্দ নেই (যেমন 15 - 2 ব্যবহার করে)।
- বোনাস পয়েন্টগুলি মডিউল ব্যবহার না করার জন্য, বিভাগ ব্যবহার না করার জন্য অতিরিক্ত বোনাস প্রদান করা হবে।

স্কোরিং:
- আপনার স্কোরটি আপনার কোডের বাইটের সংখ্যা হবে (হোয়াইটস্পেস অন্তর্ভুক্ত নয় ) আপনার বোনাস দ্বারা গুণিত।
- আপনি যদি মডুলাস ব্যবহার না করেন তবে সেই বোনাসটি 0.90; আপনি যদি বিভাগটি ব্যবহার না করেন তবে সেই বোনাসটি 0.90।
- আপনি যদি ব্যবহার না করেন তবে সেই বোনাসটি 0.80 is
- আপনার স্কোর যত কম হবে তত ভাল।

ইনপুটটি সর্বদা 0 এর চেয়ে বড় এবং 2 ^ 32 এর চেয়ে কম পূর্ণসংখ্যা হবে।
আপনার আউটপুট একটি সাধারণ "হ্যাঁ" বা "না" হওয়া উচিত।

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


'সত্য' বা 'মিথ্যা' একটি বৈধ আউটপুট?
ব্লেজার

8
জাভাস্ক্রিপ্ট (27 টি অক্ষর) function f(n){return "yes"}। এটি 13 দ্বারা ভাগ করা যায় এমন সমস্ত সংখ্যার জন্য 'হ্যাঁ' ফিরে আসবে
ajax333221

5
"(হোয়াইটস্পেস অন্তর্ভুক্ত নয়)" সর্বদা এই দুটি পরিস্থিতির মধ্যে একটির ফলস্বরূপ হয়েছে: একটি প্রোগ্রাম তার বিষয়বস্তুটিকে হোয়াইটস্পেসে এনকোড করে দেয় বা হোয়াইটস্পেসে লেখা প্রোগ্রাম (প্রোগ্রামিং ভাষা)
জিমিনপি

4
Using some roundabout method of generating the number 13 for use is acceptable.আপনি কীভাবে নির্ধারণ করবেন যে "চতুর্দিকে যথেষ্ট"?
ক্রাঙ্কার

3
@ রুশার সত্য কথা বলতে গেলে আমি লক্ষ্য করিনি যে এটি 2 বছর বয়সী ছিল, এটি সম্প্রতি সক্রিয় হয়ে উঠেছে। আপনার পরামর্শ হিসাবে, আমি বরং উত্তর পৃষ্ঠার 2 পৃষ্ঠাগুলি সহ একটি প্রশ্ন নন-ওপি হিসাবে নিনজা-পরিবর্তন করব না ..
ক্রাঙ্কার

উত্তর:



19

উইনএক্সপি কমান্ড শেলের এএসএম - 16 বিট x86

এক্সিকিউটেবল - 55 বাইট * 0.8 = 44

উত্স - ২৮৮ টি অক্ষর * 0.8 = 230.4

13 নম্বর এমনকি একত্রিত। কম ফাইলে উপস্থিত হয় না।

A86 ব্যবহার করে জমা দিন ble

    mov si,82h
    xor ax,ax
    xor cx,cx
a:  imul cx,10
    add cx,ax
    lodsb
    sub al,48
    jnc a
    inc cx
h:  mov dl,a and 255
c:  loop g
    sub dl,a and 255
    jz e
    mov dl,4
e:  add dl,k and 255
    mov dh,1
    mov ah,9
    int 21h
    ret
g:  inc dl
    cmp dl,c and 255
    jne c
    jmp h
k:  db 'yes$no$'

আমি বুঝতে পারি যে এই সমাধানটি চতুর, তবে এটি কোড-গল্ফ হিসাবে দেখা হিসাবে, আমরা কি ক্লিভারেস্ট সমাধানগুলির চেয়ে সংক্ষিপ্ততম সমাধানগুলিকে উজ্জীবিত করা উচিত নয়?
মেল্লামোকব

21
@ মেল্লামোকব: আমি মেটাতে যা পড়েছি তা থেকে কিছু লোক মনে করে যে ভোটদান একটি চতুর / অস্বাভাবিক সমাধানের জন্য প্রশংসা হিসাবে চিহ্নিত। আমরা যদি কেবল সংক্ষিপ্ত উত্তরে ভোট দিয়ে থাকি তবে ভোট দেওয়ার কোনও অর্থ হবে না। আমার ধারণা 'চিকিত্সা' চূড়ান্ত কুদোস হিসাবে একটি সংক্ষিপ্ত কোডে যায়। তারপরে, গল্ফস্ক্রিপ্টের একটি সহজ সমাধান সর্বদা সিতে একটি চতুর সমাধানের চেয়ে ছোট হবে - সুতরাং ভোটের প্রাপ্য কে? শেষ পর্যন্ত, ভোটগুলি এত গুরুত্বপূর্ণ নয়, এটি মজা করা সম্পর্কে।
স্কিজ

1
নিয়ম: The input will always be an integer greater than 0 and less than 2^32। আপনি 16 বিট ব্যবহার করতে পারবেন না
ফ্যাব্রিকিও

@ ফ্যাব্রিকিও: সমস্ত 16 বিট সংখ্যা 2 ^ 32 এর চেয়ে কম। :-)
স্কিজ

হ্যাঁ .. আপনি ঠিক একরকম। তবে আপনি 2 ^ 32-1 = p হ্যান্ডেল করতে পারবেন না
Fabricio

17

পাইথন 3.x: 54 * 0.8 = 43.2

13 টি দৈর্ঘ্যের স্ট্রিং থাকা এটি একটি কপ-আউট হতে পারে, তবে এখানে এটি যায়:

print('no' if any((' ' * int(input())).split('             ')) else 'yes')

এটি এন স্পেসগুলির একটি স্ট্রিং তৈরি করে কাজ করে (ডিলিমিটারের পছন্দটি নির্বিচারে হয়, তবে আমি স্পষ্ট কারণে স্পেস বেছে নিয়েছিলাম), এবং 13-স্পেস সাবস্ট্রিংগুলিকে বিভাজন করে যতক্ষণ না আপনার স্ট্রিংটি এন% 13 স্পেস যুক্ত থাকে ততক্ষণ না ফেলে রাখা হয়।


4
+1 টি। আমি 13 টি চরিত্রের সাদা স্থান দ্বারা বিভাজন পছন্দ করি। পাইথন 2 এ স্থানান্তর করা এবং আমার উত্তর থেকে কৌশলটি ব্যবহার করা এটি 35.2 এর স্কোর এ নেমে যায়:print 'yneos'[any((' ' * input()).split(' '))::2]
স্টিভেন রাম্বালস্কি

আমি বলতে সম্পর্কে ছিল: আপনি প্রতিস্থাপন করতে পারে ' 'সঙ্গে ' '*6+' 'সংরক্ষণ 5 অক্ষর - কিন্তু তারপর আমি দেখা গেছে যে শূণ্যস্থান এ সব গণ্য করা হবে না ...
kratenko

15

গল্ফস্ক্রিপ্ট, 32 টি অক্ষর

~){.14base{+}*.@<}do('no''yes'if

আমি অন্য সবার থেকে আলাদা কিছু চেষ্টা করতে চেয়েছিলাম, সুতরাং আমার সমাধান সংখ্যাটির বেস 14 ডিজিটাল মূল গণনা করে বারবার সংখ্যাকে বেস 14 এ রূপান্তর করে এবং ফলাফলটি আর ছোট না হওয়া পর্যন্ত অঙ্কগুলি সংমিশ্রণ করে solution এটি মূলত বাকি মডুলো 13 গণনা করার সমান, ফলাফলটি 0 থেকে 12 এর পরিবর্তে 1 থেকে 13 এর মধ্যে হবে।

যেহেতু ডিজিটাল রুট 13 সমান কিনা তা যাচাই করা 13 নম্বর নিজেই ব্যবহার না করে (বা 12 + 1 এর মতো কিছু খোঁড়া workaround) কঠিন হবে, তাই আমি আসলে যা করি তা হ'ল আমি লুপের আগে ইনপুট সংখ্যাটি বাড়িয়েছি এবং ফলাফলটি হ্রাস পাচ্ছি। এইভাবে, 13 দ্বারা বিভাজ্য সংখ্যাগুলির ফলাফলটি আসলে শূন্য হবে, এটি যাচাই করা খুব সহজ।

প্রোগ্রামটির একটি মন্তব্য করা সংস্করণ এখানে:

~              # evaluate the input, turning it from a string to a number
)              # increment by one
{              # start of do-loop 
    .          # make a copy of the previous number, so we can tell when we're done
    14 base    # convert the number to base 14
    { + } *    # sum the digits
    . @ <      # check if the new number is less than the previous number...
} do           # ...and repeat the loop if so
(              # decrement the result by one
'no' 'yes' if  # output 'no' if the result is non-zero, 'yes' if it's zero

এই প্রোগ্রামটি আসলে কোনও অ-নেতিবাচক পূর্ণসংখ্যার ইনপুটগুলি পরিচালনা করবে , যেহেতু গল্ফস্ক্রিপ্ট বিগনাম গাণিতিক ব্যবহার করে। অবশ্যই, অত্যন্ত বৃহত ইনপুটগুলি অতিরিক্ত সময় এবং / অথবা স্মৃতি গ্রহণ করতে পারে।

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


যদি কেবল প্রত্যেকেই তাদের গল্ফস্ক্রিপ্ট কোডটি এত ভালভাবে মন্তব্য করতে পারে। Kudos
skibrianski

13

সি, 68 * 0.8 = 54.4

24 জবাবের পরেও, কেউ এখনও এই সুস্পষ্ট আলগোরিদিম নিয়ে আসে নি:

f(x){puts("no\0yes"+3*((x*330382100LL>>32)-(~-x*330382100LL>>32)));}

আমি অপেক্ষা করছিলাম যে কেউ একটি পূর্ণসংখ্যার পারস্পরিক ক্রিয়াকলাপ করার জন্য। এটি কেবল চ্যালেঞ্জের একটি মার্জিত সমাধানই নয়, এটি পারফরম্যান্স অপটিমাইজেশন হিসাবে এটি নিজস্ব অধিকার হিসাবে একটি দরকারী কৌশল।
স্যার_লগসালোট

এটি কি খুব মানসম্মত হওয়া সত্ত্বেও বৈধ?
ওলরিনব

1
@ ওল্ড্রিনব, আমি প্রশ্নের মান মেনে চলার কোনও প্রয়োজন দেখছি না। সাধারণভাবে, কোড গল্ফটিতে কঠোর মানক সম্মতিটি ভীষণ বিরক্তিকর।
উগোরেন

আপনি ব্যাখ্যা করতে পারেন কেন এটি কাজ করে?
বেদাদ শাকিব

@ ব্যবহারকারী ২676718৮৮৯, এটি "পারস্পরিক গুণক" নামে পরিচিত একটি প্রযুক্তি - মূলত (২ ^ কে / এক্স) দ্বারা গুণ দ্বারা এক্স দ্বারা বিভাজন বাস্তবায়নের একটি উপায়। এই ক্ষেত্রে এক্স 13, এবং 330382100 * 13 প্রায় ঠিক 2। 32।
ugoren

11

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

বর্তমান সংস্করণ (৩১ টি অক্ষর * 0.90 বোনাস = 27.9)।

alert(prompt()*2%26?'no':'yes')

ডেমো: http://jsfiddle.net/9GQ9m/2/

সম্পাদনা 1: স্কোর যথেষ্ট কম করতে এবং forলুপ এড়াতে মডুলাস ব্যবহার করে দ্বিতীয় বোনাসটি ত্যাগ করুন । এছাড়াও ~~দুটি চর মুছুন এবং সংরক্ষণ করুন (ধন্যবাদ @copy)


পুরানো সংস্করণ (48 টি অক্ষর * 0.80 বোনাস = 38.4)

for(n=~~prompt()*2;n-=26>0;);alert(n?'no':'yes')​

সবকিছুকে দুটি দিয়ে গুণান এবং তার পরিবর্তে 26 ব্যবহার করুন ... এটি আসেনি।
মিঃ লামা

আপনি ~~ধরে নিচ্ছেন বৈধ ইনপুট বাদ দিতে পারেন ; অন্যথায় prompt()<<1খুব কাজ করবে।
অনুলিপি করুন

যদিও আমি স্বীকার করব যে প্রযুক্তিগতভাবে এটি এই পদ্ধতিটি ব্যবহার করে 2 ^ 32 এর সীমাতে পৌঁছায় না ..
মেল্লামোকব

1
বাস্তবে এটি 2 ^ 32 এর বাইরে কাজ করে যেহেতু আপনি এখন কোনও বিটওয়াইজ অপারেটরকে বাদ দিয়েছেন।
কপি করুন

3
এটি এখনও 13 দ্বারা বিভাজ্যতা নির্ধারণের জন্য একটি পাটিগণিত কুইকিকে ব্যবহার করছে এবং এখানে একটি বিধি ছিল যে পাটিগণিতের কোনও পুলিশ নেই ...
ওয়ালি ওয়েস্ট

7

BrainFuck

স্কোর: 200 * 0.8 = 160

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

স্টাডিন থেকে পড়া। সম্ভবত সবচেয়ে চতুর সমাধান নয়, তবে বিএফ-তে কাজ করে এমন কিছু পাওয়া ভাল is যদিও এটি বেশ কমপ্যাক্ট।


এটি কিভাবে কাজ করে তার কোনও ব্যাখ্যা? দেখে মনে হচ্ছে ডিফল্টরূপে ব্রেইনফাক সম্পূর্ণ 0.8 বোনাস পাবে কারণ এতে কেবল বিভাগ বা মডুলাস নেই।
মিঃ লামা

@ গিগা ওয়াট এটি মডুলাস গণনা করে।
অনুলিপি করুন

1
হ্যাঁ, তবে আমি যা বোঝাতে চেয়েছি তা এটি মডুলাস অপারেটরটি ব্যবহার করে না (কারণ এটির একটি নেই)। সুতরাং এটি ব্যবহার না করার জন্য এটি সর্বদা বোনাস পাবে। এছাড়াও, দুর্দান্ত বায়ো পিক
মিঃ লামা

@ গিগাওয়াট আমি আপনার সাথে একমত নই, কেবল আপনার প্রশ্নের উত্তর দিয়েছি।
অনুলিপি করুন

7

স্কালা (38 * 0.9 = 34.2)

0xD(হেক্স) বা 015(অক্ট) এর অনুরূপ ।

ASCII এর মান CR13।

def t(n:Int)=if(n%'\r'==0)"yes"else"no"

1
আমি কাউকে আসকি মূল্যবোধগুলি শোষণ করার আগে এটি কতক্ষণ হবে তা ভেবে অবাক হয়েছি।
মিঃ লালমা

1
আপনি আপনার পোস্টে স্কোর যোগ করতে পারেন দয়া করে? 38 * 0.9 = 34.2 হওয়া উচিত।
মেল্লামোকব


5

পাইথন:

f=lambda n:1==pow(8,n,79)

যেমন

[i for i in range(100) if f(i)]

দেয়

[0, 13, 26, 39, 52, 65, 78, 91]

1
এখন এই আমি পছন্দ। তবে চ্যালেঞ্জের মানদণ্ড অনুযায়ী হ্যাঁ / না হওয়া দরকার এবং আপনার স্কোরটি পোস্ট করা উচিত (25 * .08 = 20)
ব্লেজার

f=lambda n:pow(8,n,79)-1 and "no" or "yes"এটিকে ঠিক করে রাখুন, 43 * 0.8 = 34.4
উগোরেন

4

সি, 54.4 == 68 * .8   80 * .8

char*f(c){char*s=" yes\0\rno";while(c&&*s++);return c>0?f(c-*s):++s;}

এর দুর্দান্ত ব্যবহার \r- আমি ভেবেছিলাম এটি উইন্ডোজ সমর্থনের জন্য কেবল ভাল। কিন্তু কেন c>0যখন cকরবেন?
ugoren

@ ইউগোরেন: এটি করবে না, এটি সম্পর্কে চিন্তা করুন।
জবাবদিহি করা বন্ধ করে দিয়েছে

আপনি ঠিক বলেছেন, আমি একরকম বিভ্রান্ত হয়ে পড়েছি। আমি 2 ^ 31 এর উপরে সংখ্যাগুলি নিয়ে ভাবছিলাম, যেখানে >0ভাল নেই। তবে আপনার ফাংশনটি তাদের সমর্থন করে না তা লক্ষ করার পরিবর্তে, আমি ভেবেছিলাম ==ভাল।
ugoren

4

ECMAScript 6, 25 × 0.9 = 22.5

হ্যাঁ, এটি 13 পাওয়ার এক বিরক্তিকর উপায়।

n => n % '             '.length ? 'no' : 'yes'

আমি কীভাবে আপনার স্কোরটি এত কম ছিল তা অনুধাবন করার চেষ্টা করছিলাম তখন আমি আপনার সংখ্যার জন্য সাদা স্থান ব্যবহার করার প্রতিভা বুঝতে পেরেছিলাম ... lol
মেল্লামব্যাক

1
বিধিগুলিকে আপত্তিজনক ব্যবহারের জন্য +1। আমি যদি তাদের বলেছিলাম, এটি "অপসারণযোগ্য হোয়াইটস্পেস গণনা করা হবে না"। সুতরাং কেউ আমাদের একটি 0 বাইট সমাধান দিতে যাচ্ছে?
ugoren


3

এপিএল ((21 - 1) × 0.8 = 16)

'yes' 'no'[1=⎕∨⌊⍟9*6]

⎕IOডায়ালগ এপিএলে সঠিকভাবে কাজ করার জন্য 0 এ সেট করা উচিত। 13 উত্পন্ন করার জন্য, আমরা 9 এর প্রাকৃতিক লোগারিদম ( ) এর ফ্লোর ( ) 6 ( 9*6) এর পাওয়ারে নিয়ে যাই । এর পরে, আমরা আমাদের ইনপুট ( ) এবং 13 এর জিসিডি ( ) খুঁজে পাই এবং তারপরে এটি 1 টি সমান হয় কিনা তা পরীক্ষা করি This এটি [...]উত্তরের ভেক্টরকে সূচক ( ) এর সাথে ব্যবহৃত হয় ।

যদি কেউ স্কোরিংয়ের নির্দিষ্টকরণে বাইটের উল্লেখ সম্পর্কে পেডেন্টিক হতে চায় তবে এর ইউটিএফ -8 এনকোড সংস্করণটির স্কোরটি এটি (29 - 1) × 0.8 = 22.4। :)


1
আমি তাই বাইট সম্পর্কে পেডেন্টিক হতে চাই।
স্টিভেন রাম্বালস্কি

1
Ohhhhhhhh স্ন্যাপ আপনি দ্বি- int- এ
ডিলন কাওয়ার

3

সি, 88

ফিবোনাচি কৌশল

f(n){return n<2?n:f(n-1)+f(n-2);}main(x){printf("%s",x%f(7)?"No":"Yes",scanf("%d",&x));}

2
আপনি f (7) এর মাধ্যমে 13 ব্যবহার করছেন ... এটি নিয়মগুলি কিছুটা বাঁকানো ...
ওয়েলওয়েস্ট

3

পার্ল - 44 × 0.8 = 35.2

#!perl -p
map$_+=4*chop,($_)x10;$_=chop^$_*3?'no':yes

শেবাংকে একটি বাইট হিসাবে গণনা করা হচ্ছে।

গেমটি থেকে আমি কিছুটা দেরি করে ফেলেছি তবে আমি ভেবেছিলাম যে আমি অ্যালগরিদমটি ভাগ করব, কারণ এখন পর্যন্ত অন্য কোনও পোস্ট এটি ব্যবহার করে নি have

এটি পর্যবেক্ষণের অধীনে কাজ করে যে n যদি 13 দ্বারা বিভাজ্য হয় তবে ⌊ n / 10 ⌋ + n% 10 * 4 এছাড়াও 13 দ্বারা বিভাজ্য । 13 , 26 এবং 39 মানগুলি নিজের মধ্যে চক্র করে। অন্যান্য সমস্ত 13 টি গুণক অবশেষে লগ 10 এন পুনরাবৃত্তির চেয়ে আর কোনও মানগুলিতে পৌঁছে যাবে ।


অন্যান্য বেসগুলিতে

স্বীকার করা, chopএটি কিছুটা কপ-আউট। বেস 10 প্রতিনিধিত্ব সহ, এটি সমান divmod। তবে অ্যালগরিদম অন্যান্য ঘাঁটিতে প্রাকৃতিকভাবে ভাল কাজ করে, উদাহরণস্বরূপ বেস 4, বা 8।

উপরের অ্যালগরিদমের পাইথন স্টাইলের সিউডো কোড (বেস 10):

def div13(n):
    while n > 40:
        q, r = n // 10, n % 10
        n = q + 4*r
    return n in [13, 26, 39]

বেস 2:

def div13(n):
    while n > 40:
        q, r = n >> 1, n & 1
        n = q + 7*r
    return n in [13, 26, 39]

বেস 4 এ:

def div13(n):
    while n > 40:
        q, r = n >> 2, n & 3
        n = q + 10*r
    return n in [13, 26, 39]

8 বেসে:

def div13(n):
    while n > 40:
        q, r = n >> 3, n & 7
        n = q + 5*r
    return n in [13, 26, 39]

ইত্যাদি 13 এর চেয়ে ছোট কোনও বেস সমানভাবে কাজ করে।


2

জাভাস্ক্রিপ্ট: 59 * 0.8 = 47.2 (?)

মিতাল :

function r(n){
  for(c=0;n>c;n-=12,c++);
  return n==c?'yes':'no';
}

মেলামোকব এর উন্নতি (57 * 0.8 = 45.6) সহ:

function r(n){
  for(c=0;n>c;n-=12,c++);
  return n-c?'no':'yes'
}

1
আপনি ফেরত পরিবর্তন করে return n-c?'no':'yes'এবং দ্বিতীয় সেমিকোলন বাদ দিয়ে দুটি চর সংরক্ষণ করতে পারবেন ।
মেল্লামোকব

পছন্দ করেছেন এটি রুবিতে লিখে আরও উন্নতি করতে পারে বা এমন কিছু যা আরও কমপ্যাক্ট ফাংশন সংজ্ঞা দেয়।
16: 27

promptইনপুট এবং alertআউটপুট ব্যবহারের জন্য সিজির একটি স্বীকৃত মানও রয়েছে যা প্রোগ্রামটি ইন্টারেক্টিভ করে তোলে এবং কয়েকটি অক্ষর সংরক্ষণ করে।
মেল্লামোকব

2

পার্ল: (51-4 স্পেস) * 0.9 = 42.3

say+<>%(scalar reverse int 40*atan2 1,1)?'no':'yes'

40 * আতান 2 (1,1) -> 31.41592 (পিআই * 10)


2

পার্ল (19.8)

21 বাইট * .9

say2*<>%26?"no":"yes"

দ্রষ্টব্য: আমার প্রথম পার্ল প্রোগ্রামটি ever দুর্বলভাবে টাইপ করা আমার ধারণা গল্ফের পক্ষে ভাল।


আমি খুঁজে পেয়েছি যে কোনও ভাষা সম্পর্কে আপনার জ্ঞান পরিমাপ করার একটি ভাল উপায় হ'ল চেষ্টা এবং এতে গল্ফ। সাধারণত প্রান্তের কেসগুলি জেনে রাখা প্রয়োজন। এছাড়াও, আপনার স্কোরটি আসলে 23 * 0.90 (সাদা স্থান গণনা করে না)।
মিঃ লালমা

ভেবেছিলাম আমি সাদা জায়গার জন্য জবাবদিহি করেছি। এখনই স্থির। যে ইশারা জন্য ধন্যবাদ।
স্টিভেন রাম্বালস্কি

কি দারুন. পার্লের জন্য কোনও ভালবাসা নেই। আমি এটা পছন্দ করে বলতে পারি না।
স্টিভেন রাম্বালস্কি

2

সি (কেএন্ডআর): 47 * 0.8 = 37.6

f(i){for(;i>0;i-=__LINE__);puts(i?"no":"yes");}

EDIT1: ঠিক আছে বাহ্যিক ফাংশনগুলির উপর সমস্ত নির্ভরতা অপসারণ করা, উপরেরগুলি যতক্ষণ আপনি এই লাইনটি ফাইলের 13 তম লাইনে রাখবেন ততক্ষণ কাজ করবে! :) যদি __LINE__ঠিক করে প্রতিস্থাপন করা ঠিক হয় 0xdতবে আরও 5 টি অক্ষর সংরক্ষণ করতে পারবেন (স্কোর: 33.6)


7
যদি এটি 13 তম লাইনে হওয়া দরকার, আপনার কোডে 12 টি নতুন লাইন যুক্ত করতে হবে এবং তাই আপনার স্কোরের জন্য: এটি 59 * 0.8 = 47.2 হয়
ভেরিয়াস


2

জাভাস্ক্রিপ্ট (সাদা স্থানের জন্য 108 কম 0) => 108, এক্স 0.8 (কোনও মডুলাস নেই, বিভাগ নেই) = 86.4

b=b=>{a=z,a=a+"";return+a.slice(0,-1)+4*+a.slice(-1)};z=prompt();for(i=99;i--;)z=b();alert(b()-z?"no":"yes")

এই পদ্ধতিতে নিম্নলিখিত অ্যালগরিদম ব্যবহার করা হয়: 1. শেষ সংখ্যাটি নিন, চারটি দিয়ে গুণ করুন, কাটা সংখ্যার বাকী অংশে এটি যুক্ত করুন। 2. 99 পুনরাবৃত্তির জন্য পদক্ষেপ 1 পুনরাবৃত্তি করুন ... 3. পদক্ষেপ 1 ব্যবহার করে এটি আরও একবার পরীক্ষা করুন, ফলাফলের সংখ্যাটি যদি নিজেই হয় তবে আপনি 13 এর একাধিক খুঁজে পেয়েছেন।

পূর্ববর্তী আপডেট, সরানো হয়েছে varবিয়োগ-মিথ্যা শর্তসাপেক্ষে আরও অক্ষর অপসারণ করার জন্য এবং সতর্কতায় বিপরীত যুক্তি।

প্রযুক্তিগতভাবে, শেষ ফলাফলটি হ'ল আপনি শেষ পর্যন্ত 13, 26 বা 39 এর মতো একটি দুটি অঙ্কের সংখ্যায় পৌঁছাতে পারবেন যা প্রথম ধাপ 1 দিয়ে চালিত হয়ে যথাক্রমে 13, 26 বা 39 দেবে। সুতরাং পুনরাবৃত্তি 100 এর জন্য একই পরীক্ষা করা বিভাজনকে নিশ্চিত করবে।


2

চেডার, 20 বাইট (নন-কেপটিং)

স্কোর 20 * 0.9 = 18

n->n*2%26?'no':'yes'

একটি সরল উত্তর।


2

কমন লিস্প (71 বাইট * 0.8) = 56.8

সহজ পুনরাবৃত্তি, সত্যিই।

(defun w(x)(if(> x 14)(w(- x 13))(if(> 14 x 12)(print'yes)(print'no))))

Ungolfed:

(defun w (x)
  (if (> x 14)
      (w (- x 13))
      (if (> 14 x 12)
          (print 'yes)
          (print 'no))))

2

রুবি ( 50 48 * 0.9 = 43.2)

ব্যবহারের স্মার্ট উপায় eval

eval x="p gets.to_i*3%x.length == 0? 'yes':'no'"

1

ডি 56 অক্ষর .80 বোনাস = 44.8

bool d(double i){
    return modf(i*0,0769230769,i)<1e-3;
}

এটি 1/13 ব্যবহার করে একটি কপ-আউট হতে পারে এবং একটি ডাবল যে কোনও 32 বিট নম্বর ঠিক রাখতে পারে

সম্পাদনা করুন: এটি 1/13 এর সাথে গুণিত করে এবং ভগ্নাংশের অংশটি 0 থেকে আলাদা হলে (গোলাকার ত্রুটির অনুমতি দেয়) বা অন্য কথায় এটি i / 13 এর ভগ্নাংশটি পরীক্ষা করে দেখায় কাজ করে


মোডফ ব্যবহার করে মডুলাস গণনা করে না?
ব্লেজার

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

কেবল একটি নোট: ফলাফল (হ্যাঁ / না) আসলে আউটপুট হতে হবে। এছাড়াও, এই সমাধানটি কীভাবে কাজ করে আমি কিছুটা কৌতূহলী। একটি ব্যাখ্যা অনেক প্রশংসা হবে!
মিঃ লালমা

1

পাইথন 2.7

(20 - 1 সাদা স্থান) * 0.9 (বিভাগ নেই) = 17.1

print input()%015==0

হ্যাঁ / না এর পরিবর্তে সত্য / মিথ্যা: 31 * 0.9 (বিভাগ নেই) = 27.9

print'yneos'[input()%015!=0::2]

পাইথনের সুবিধা গ্রহণ করে intঅন্যান্য ঘাঁটিগুলি স্ট্রিং থেকে বেস 10 পূর্ণসংখ্যায় রূপান্তর করতে। আপনি উভয় সংস্করণে দেখতে পারেন তারা আলাদা (এখনও একই অক্ষরের দৈর্ঘ্য) বেস ব্যবহার করে

সম্পাদনা: 1 চর হ্যাঁ / কোনও সংস্করণে সংরক্ষণ করুন

সম্পাদনা 2: আরও 2 টি চাঁচা শেভ!

edit3: মন্তব্যে আবার ধন্যবাদ! পাইথনের বিল্টিন অষ্টাল উপস্থাপনা ( 015== 13...) ব্যবহার করে ইনট এর বেস অনুবাদ না করে আরও বেশি অক্ষর ছাঁটাই করা হয়েছে


3
আমি বিভিন্ন ঘাঁটি সহ একটি কপ-আউট দেখতে পাচ্ছি
র‌্যাচেট ফ্রিক

9 বেস 9 এ? আমার আসা উচিত ছিল।
মিঃ ললামা

1
print['no','yes'][input()%int('d',14)==0
স্টিভেন রাম্বালস্কি

যতদূর আমি দেখেছি, একটি কপ-আউটকে কিছু 14-1বা এমন কিছু হিসাবে সংজ্ঞায়িত করা হয়েছিল 26/2। আমি 13
ব্লেজার

@ স্টেভেন রাম্বালস্কি 1 টি চর সংরক্ষণের জন্য ধন্যবাদ: পি
ব্লেজার

1

পার্ল, 95 * 0.8 = 76

$_=<>;
while($_>0){
$q=7*chop;
$d=3*($m=chop$q);
chop$d;
$_-=$d+$m}
if($_){print"no"}
else{print"yes"}

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


1

পাইথন - স্কোর 27.9

(৩১ টি অক্ষর * 0.90) - সংক্ষিপ্ত কোডের জন্য কিছু বোনাস ভুলে যায়।

print'yneos'[2*input()%26>0::2]

পুরানো সংস্করণ: (47 টি অক্ষর * 0.80) - মেল্লামোকব এর জাভাস্ক্রিপ্ট উত্তরের সম্পূর্ণ ফিতা, তবে পাইথনে।

n=2*input()
while n>0:n-=26
print'yneos'[n<0::2]

পুরানো সংস্করণ: (60 অক্ষর * 0.80)

n=input()
while n>12:
 for _ in'x'*12+'!':n-=1
print'yneos'[n>0::2]

পুরানো সংস্করণ: (105 টি অক্ষর * 0.80)

n=abs(input())
while n>12:n=abs(sum(int(x)*y for x,y in zip(`n`[::-1],n*(1,-3,-4,-1,3,4))))
print'yneos'[n>0::2]

হুঁ, এটি একটি নিফটি পদ্ধতি। সেই 1, -3, -4 প্যাটার্নটি আমি উইকিপিডিয়ায় যা দেখেছি তার অনুরূপ। কোডে এটি দেখতে এখনও শীতল।
মিঃ লালমা

@ গিগা ওয়াট: আমি এটি পেয়েছি। অন্য প্যাটার্নটি (1,10,9,12,3,4)1 টি অক্ষর বাঁচাতে পারে তবে 13 টির চেয়ে কম মানের সমাধান করবে না
স্টিভেন রুম্বালস্কি

1

প্রশ্নে:

d:{$[0=x mod "I"$((string 6h$"q")[1 2]);`yes;`no]}
50*.9=45

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

1

রাইট লিনিয়ার ব্যাকরণ - ∞ পয়েন্ট

S->ε
S->1A
S->0S
S->9I
S->3C
S->5E
S->4D
S->2B
S->7G
S->6F
S->8H
F->3K
K->0F
A->2L
K->1G
A->5B
A->0J
B->7A
J->5A
G->6K
G->8S
H->9K
F->5S
K->2H
I->6E
I->5D
J->4S
D->8I
B->6S
K->9B
F->6A
G->9A
K->6L
K->4J
C->1E
L->8K
E->5C
B->4K
C->0D
J->2K
D->2C
A->9F
J->7C
C->6J
C->8L
E->0K
L->0C
B->9C
E->2S
L->6I
I->0L
J->0I
B->2I
I->3B
H->1C
I->7F
C->4H
F->1I
G->4I
I->0G
C->3G
F->8C
D->0A
E->3A
I->9H
A->7D
C->2F
H->7I
A->8E
F->9D
E->8F
A->6C
D->6G
G->0E
D->5F
E->9G
H->2D
D->7H
H->3E
I->2A
K->3I
C->9S
C->7K
E->4B
D->1B
L->1D
J->9E
I->1S
E->1L
J->8D
D->9J
L->2E
J->3L
B->5L
B->8B
L->7J
L->9L
G->1F
A->4A
K->5K
B->3J
H->6H
E->7E
J->1J
D->4E
G->2G
J->6B
D->3D
E->6D
H->4F
I->4C
C->5I
F->0H
H->5G
K->7S
G->3H
L->5H
H->8J
A->3S
H->0B
B->1H
G->7L
K->8A
F->2J
F->7B
L->4G
F->4L
A->1K
B->0G
G->5J
L->3F

তারপরে আপনি কীভাবে এটি 'চালানো' বেছে নেবেন তার উপর নির্ভর করে এটি 'হ্যাঁ' বা 'না' আউটপুট দেয়।

কোনও সিরিয়াস এন্ট্রি নয়, কিছুটা মজা;)

সম্পাদনা: সম্ভবত আমার কিছুটা ব্যাখ্যা করা উচিত।

একটি ব্যাকরণ নিয়ম (প্রযোজনার) একটি সেট যা সংজ্ঞায়িত হয় ভাষা । বর্ণমালার দ্বারা তৈরি সমস্ত সম্ভাব্য স্ট্রিং হিসাবে একটি ভাষা ভাবা যেতে পারে, যা তার ব্যাকরণের নিয়মের সাথে সামঞ্জস্য করে।

এখানে বর্ণমালা হ'ল সমস্ত দশমিক সংখ্যার সেট। ব্যাকরণের নিয়মগুলি হল যে সমস্ত স্ট্রিং অবশ্যই দশমিক পূর্ণসংখ্যা গঠন করে যা 13 দ্বারা বিভাজ্য।

কোনও স্ট্রিং আমাদের ভাষার সাথে সম্পর্কিত কিনা তা পরীক্ষা করতে আমরা উপরের ব্যাকরণটি ব্যবহার করতে পারি।

ব্যাকরণের নিয়মগুলিতে টার্মিনাল প্রতীক রয়েছে (যা ভাষার উপাদান রয়েছে) পাশাপাশি অ-টার্মিনাল প্রতীকগুলি যা পুনরাবৃত্তভাবে প্রতিস্থাপন করা হয়।

উদাহরণ দিয়ে কী চলছে তা ব্যাখ্যা করা সহজ:

উদাহরণস্বরূপ বলতে দিন যে আমরা যে স্ট্রিংটি পরীক্ষা করছি তা হ'ল 71955।

সর্বদা একটি সূচনা প্রতীক থাকে (যা অ-টার্মিনাল হয়), উপরের ব্যাকরণের ক্ষেত্রে এটি 'এস'। এই মুহুর্তে আমরা আমাদের স্ট্রিং থেকে কোনও অক্ষর পড়িনি:

current pattern                    symbol read
S                                  ε

এখন, আমরা আমাদের স্ট্রিংয়ের প্রথম চিহ্নটি পড়ি যা '' 'হয়, তারপরে আমরা ব্যাকরণে একটি নিয়মের সন্ধান করি যা' -> 'এর বাম দিকে আমাদের বর্তমান প্যাটার্নে কোনও অ-টার্মিনাল রয়েছে এবং এটি '->' এর ডানদিকে আমাদের প্রতীক রয়েছে। ভাগ্যক্রমে একটি (এস-> 7 জি) রয়েছে, তাই আমরা আমাদের বর্তমান প্যাটার্নে নন-টার্মিনাল চিহ্নগুলিকে নতুন নিয়মের ডান হাত দিয়ে প্রতিস্থাপন করেছি:

current pattern                    symbol read
7G                                 7

এখন আমাদের প্যাটার্নে নন-টার্মিনাল 'জি' রয়েছে এবং পড়ার জন্য পরবর্তী প্রতীকটি '1', সুতরাং আমরা আমাদের ব্যাকরণে একটি নিয়মের সন্ধান করি যা 'জি-> 1 "দিয়ে শুরু হয় We আমরা খুঁজে পাই সেখানে একটি আছে (জি-> 1 এফ), তাই আমরা নন টার্মিনালটি আমাদের নতুন নিয়মের আরএইচএসের সাথে প্রতিস্থাপন করি:

current pattern                    symbol read
71F                                1

এই প্রক্রিয়াটি পুনরাবৃত্তি করুন:

পরবর্তী নিয়ম: F-> 9D

current pattern                    symbol read
719D                               9

পরবর্তী নিয়ম: ডি-> 5 এফ

current pattern                    symbol read
7195F                              5

পরবর্তী নিয়ম: F-> 5 এস

current pattern                    symbol read
71955S                             5

এই মুহুর্তে আমাদের স্ট্রিংগুলিতে আমাদের আর চিহ্ন নেই, তবে আমাদের সেখানে আরও একটি টার্মিনাল প্রতীক রয়েছে। ব্যাকরণের প্রথম নিয়ম থেকে আমরা দেখতে পাচ্ছি যে আমরা 'এস' কে খালি স্ট্রিং (ε) দিয়ে প্রতিস্থাপন করতে পারি: এস-> ε

এটি করা আমাদের বর্তমান প্যাটারটি দেয়: 71955ε যা 71955 এর সমতুল্য।

আমরা আমাদের স্ট্রিংয়ের সমস্ত চিহ্নগুলি পড়েছি এবং প্যাটার্নটিতে কোনও অ-টার্মিনাল চিহ্ন নেই। যার অর্থ যে স্ট্রিংটি ভাষার অন্তর্গত এবং তাই 71955 আসলে 13 দ্বারা বিভাজ্য।

অর্থাত্ প্যাটার্ন = স্ট্রিং থাকা লক্ষ্য। আপনার স্ট্রিংয়ের সমস্ত চিহ্নগুলি পড়ার পরে যদি কোনও অ-টার্মিনাল চিহ্ন থাকে, তবে স্ট্রিংটি ভাষার সাথে সম্পর্কিত নয়। তেমনি, আপনার স্ট্রিংটিতে পড়ার জন্য এখনও যদি আরও চিহ্ন থাকে তবে ব্যাকরণে কোনও নিয়ম না থাকলে আপনাকে এগিয়ে যেতে দেয়, তবে স্ট্রিংটি ভাষার সাথে সম্পর্কিত নয়।


আমি ... এমনকি আমি এখানে কী দেখছি তাও নিশ্চিত নই।
মিঃ ল্লামা

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