কোডের একক লাইন না লিখে একটি সহজ ক্যালকুলেটর "লিখুন"


25

এটা খুব সহজ:

কোডের একক লাইন না লিখে একটি প্রোগ্রাম তৈরি করুন। কোডটিতে কেবল বিদ্যমান স্ট্যাক ওভারফ্লো প্রশ্ন এবং উত্তর থাকতে পারে।

প্রোগ্রামটি দুটি এলোমেলো সংখ্যা তৈরি এবং সংখ্যা আউটপুট করা উচিত

  • যোগ করো,
  • থেকে বিয়োগ,
  • এবং সাথে গুণিত
  • দ্বারা বিভক্ত

একে অপরকে.

বিধি

আপনি আপনার উত্তরে ব্যবহৃত প্রশ্ন / উত্তরগুলির লিঙ্কগুলি অবশ্যই অন্তর্ভুক্ত করবেন। নিম্নলিখিত ব্যতিক্রমগুলি সহ আপনি যে কোডটি খুঁজে পেয়েছেন তা আপনি সংশোধন করতে পারবেন না:

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

  2. আপনি উপযুক্তভাবে ইনডেন্টেশন সামঞ্জস্য করতে পারেন।

  3. আপনি ধরে নিতে পারেন যে কোড স্নিপেটগুলি কাজ করার জন্য উপযুক্ত মডিউলগুলি লোড করা হয়েছে। (উদাহরণস্বরূপ, জাভা এবং পাইথনের জন্য বিবৃতি আমদানি করুন, সি # এবং সি ++ এর বিবৃতি এবং সমস্ত ভাষায় তাদের সমতুল্য ব্যবহার করে) কোড স্নিপেটে যদি আপনার জন্য আমদানি অন্তর্ভুক্ত থাকে তবে আপনি সেগুলি কোডের শীর্ষে নিয়ে যেতে পারেন।

  4. যদি ভাষাটির কোড কোনওরকম পদ্ধতিতে কার্যকর করতে কোডের প্রয়োজন হয় (উদাহরণস্বরূপ, public static void main(String[] args)জাভা, static int Main(string[] args)সি # এর জন্য, এবং এই জাতীয়), আপনি উপযুক্ত পদ্ধতিতে আপনার কোডটি মোড়ানো করতে পারেন। তবে সেই মূল পদ্ধতির বিষয়বস্তু অবশ্যই অযৌক্তিক থাকতে হবে।

  5. আপনার অবশ্যই সম্পাদিত যে কোনও চলক / পদ্ধতি / ফাংশন / শ্রেণীর নাম পরিবর্তনগুলির একটি সুস্পষ্ট তালিকা সরবরাহ করতে হবে।

  6. আপনি স্নিপেটের স্নিপেটগুলি নিতে পারবেন না (অর্থাত্ যদি আপনি কোনও পোস্ট থেকে কোনও কোড ব্লক নেন, আপনি পুরো জিনিসটি নিয়ে যান) আপনি যে ভাষাটি ব্যবহার করছেন তাতে অন্তরঙ্গ নয় এমন লোকদের জন্য কোড কী করে তার সংক্ষিপ্ত বিবরণ সরবরাহ করুন। এই চ্যালেঞ্জটি শুরু হওয়ার আগে আপনাকে অবশ্যই পোস্ট করা স্নিপেট ব্যবহার করতে হবে।

জনপ্রিয়তা প্রতিযোগিতা, তাই সবচেয়ে উঁচুতে জয়!

শেষ তারিখ

আগস্ট, ২০১ around এর শেষের দিকে সর্বাধিক ভোট প্রাপ্ত জমাটি আমি গ্রহণ করব।


হাই মাইকেল, এবং পিপিসি স্ট্যাক এক্সচেঞ্জে আপনাকে স্বাগতম! এই সাইটে কোড চ্যালেঞ্জের জন্য একটি নিয়ম হ'ল তাদের অবশ্যই একটি উদ্দেশ্যমূলক বিজয়ী শর্ত থাকতে হবে, সুতরাং আপনার এই জন্য একটি শর্ত বেছে নেওয়া উচিত pick এটি একটি অনুরূপ চ্যালেঞ্জ যা আপনাকে কিছু ধারণা দিতে পারে।
এএএসএজিএজি

হাই @ আইস্যাকগ, আপনাকে ধন্যবাদ আমি একটি চেহারা এবং এটি মুছে ফেলুন / সম্পাদনা করব।
ক্রিস পি বেকন

@ আইস্যাক, আশা করি এখন ঠিক আছে। আপনি এখানে আমার চেয়ে বেশি অভিজ্ঞ, সময়সীমাটি কি খুব কাছে / দূরে?
ক্রিস পি বেকন

এটা অনেক ভালো. সময়সীমাটি খুব বেশি কাছাকাছি তবে স্ট্যান্ডার্ডটি প্রায় 1-2 সপ্তাহ।
13

ঠিক আছে, আবার ধন্যবাদ।
ক্রিস পি বেকন

উত্তর:


17

জে, questions টি প্রশ্ন / উত্তর, জে সম্পর্কে কিছুই নেই

echo a%b[echo a*b[echo a-b[echo a+b[b=:?2147483647 [a=:?2147483647

এটি করার খুব সুন্দর উপায়, আমি মিথ্যা বলব না। আমি যে এসও উত্তরগুলি ব্যবহার করেছি তা এখানে:

আমি কোড fooহিসাবে aএবং bকোড হিসাবে পরিবর্তনশীল নামকরণ ।


আমি ধারণা করি এপিএলটিতে এই পদ্ধতির গ্রহণ করা আরও শক্ত হবে তবে তাদের কোড ব্লকের অক্ষরগুলি নিজেরাই খুঁজে পাওয়ার ভাল সুযোগ এখনও রয়েছে।
জন

1
@ জোহনে এএসসিআইআই আওয়াজ হওয়ার সুবিধা!
মারাত্মক করুন

1
আমি এই উত্তরটি পছন্দ করি, তবে প্রশ্নটি বলে "আপনি স্নিপেটের স্নিপেট নিতে পারবেন না" - যা এটি করছে, তাই না?
চাচা

3
@ আঙ্কেলমেট "আপনি যদি কোনও পোস্ট থেকে কোড ব্লক নেন তবে আপনি পুরো জিনিসটি নেন"। আমার কাছে মনে হচ্ছে কোনও পোস্টে একাধিক কোড ব্লক থাকলে আপনি কেবল একটি নিতে পারেন তবে আপনি কোনও কোড ব্লকের অংশ নিতে পারবেন না।
6:৪৪ এ মারাত্মক করুন

এগুলি সমস্ত সম্পূর্ণ কোড ব্লক থেকে আসে - উত্সগুলি একবার দেখুন।
শান লাথাম

7

পাইথন 2, 7 6 তথ্যসূত্র

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

আমি রেফ # 1 এর জায়গায় ভিন্ন উত্তর দিয়ে 2000 বিট এলোমেলো সংখ্যার সাহায্যে এটি করার একটি উপায় খুঁজে পেয়েছি, তবে আমি যে অনলাইন পরিবেশটি ব্যবহার করি তাতে এটি পরীক্ষা করতে পারছি না getrandbits, কারণ এটি os.urandomআমাকে ডাকে NotImplementedError, সুতরাং আমি পরিবর্তে এই পথে গিয়েছিলাম। এটি টিআইওর সাথে এখন ব্যবহার করা যেতে পারে।

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

#assumed to be loaded
import random

n1 = []
n1.append(random.randint(1, 100))

n2 = []
n2.append(random.randint(1, 100))

r1 = map(sum, zip(n1, n2))
r2 = map(lambda t: t[0] - t[1] ,zip(n1, n2))

ab = [n1[i]*n2[i] for i in range(len(n1))]

r1, last = r1[0], r1[-1]
r2, last = r2[0], r2[-1]
ab, last = ab[0], ab[-1]
n2, last = n2[0], n2[-1]

print r1
print r2
print ab
ab = float(ab) / n2
ab = float(ab) / n2
print ab

তথ্যসূত্র

import random লোড করা হয় বলে ধরে নেওয়া হয়, যেহেতু প্রশ্ন বলছে এটি অনুমোদিত allowed

  1. lst = []এবং lst.append(random.randint(1, 100))- এখানে

  2. map(sum, zip(r1, r2)), map(lambda t: t[0] - t[1] ,zip(r1, r2)), r1, এবং r2- এখানে

  3. result = float(a) / b- এখানে

  4. ab = [a[i]*b[i] for i in range(len(a))]- এখানে

  5. first, last = some_list[0], some_list[-1]- এখানে

  6. print x- এখানে

নতুন নামকরন করা

  1. lstএর নাম পরিবর্তন করা হয়েছে n1এবং n2(রেফ # 1: আমি পুরো কোডটি দুটিবার ব্যবহার করেছি)

  2. r1এবং এর r2পুনঃনামকরণ করা হয়েছে n1এবং n2(রেফ # 2: আমি পরে পৃথক ভেরিয়েবলগুলি ব্যবহার করেছি, যদিও মানচিত্রগুলি অর্পণ করতে এবং শেষ প্রিন্টে বিভক্ত করতে, যেহেতু উত্তরগুলি সেগুলিতে অন্তর্ভুক্ত রয়েছে))

  3. resultএবং নতুন aনামকরণ করা হয়েছে ab, এবং bপুনরায় নামকরণ করা হয়েছে n2(রেফ # 3)

  4. aএবং এর bপুনঃনামকরণ n1এবং n2(রেফ # 4)

  5. firstএবং some_listউভয় নতুন নামকরণ করা r1, r2, ab, অথবা n2, যা লাইন উপর নির্ভর করে। (রেফ # 5: আমি এটি চারবার ব্যবহার করেছি Note দ্রষ্টব্য যে শুধুমাত্র প্রথম অ্যাসাইনমেন্ট ব্যবহৃত হয়েছে, তাই আমি নাম পরিবর্তন করি না last)

  6. xনাম পরিবর্তন করা হয় r1, r2বা ab, কোন লাইনের উপর নির্ভর করে। (রেফ # 6)


1

দশমিক , 2 উল্লেখ

82D82D00D30001D30041D301212010D301200D30001D30042D301212010D301200D30001D30043D301212010D301200D30001D30044D30122

কমান্ডগুলি ব্যবহৃত:

  • 0 সেট (ডিফল্ট স্ট্যাক সূচক)
  • 1 পুশ
    • 2 CHAR
  • 2 POP এর
  • 3 ইনপুট / আউটপুট
    • 00 সদৃশ স্ট্যাক
    • 01 স্ট্যাক থেকে STDOUT এ
  • 4 গণিত
    • 1 এডিডি
    • 2 বিয়োগ করা
    • 3 MULTIPLY
    • 4 বিভক্ত করা
  • 8 BUILTIN
    • 2 স্ট্যাক করতে এলোমেলো পূর্ণসংখ্যার ধাক্কা

বর্ণিত সংস্করণ:

82D       ; push random INT    - stack contains {r1}
82D       ; push random INT    - stack contains {r1, r2}

00D300    ; duplicate stack[0] - stack contains {r1, r2, r1}
01D300    ; duplicate stack[1] - stack contains {r1, r2, r1, r2}
41D       ; math +             - stack contains {r1, r2, r1+r2}
301       ; print from stack to output
2         ; pop                - stack contains {r1, r2}

12010D3012; print newline

00D300    ; duplicate stack[0] - stack contains {r1, r2, r1}
01D300    ; duplicate stack[1] - stack contains {r1, r2, r1, r2}
42D       ; math -             - stack contains {r1, r2, r1-r2}
301       ; print from stack to output
2         ; pop                - stack contains {r1, r2}

12010D3012; print newline

00D300    ; duplicate stack[0] - stack contains {r1, r2, r1}
01D300    ; duplicate stack[1] - stack contains {r1, r2, r1, r2}
43D       ; math *             - stack contains {r1, r2, r1*r2}
301       ; print from stack to output
2         ;                    - stack contains {r1, r2}

12010D3012; print newline

00D300    ; duplicate stack[0] - stack contains {r1, r2, r1}
01D300    ; duplicate stack[1] - stack contains {r1, r2, r1, r2}
44D       ; math /             - stack contains {r1, r2, r1/r2}
301       ; print from stack to output

সূত্র:

এটি অনলাইন চেষ্টা করুন! যদি আউটপুট ক্যাশে স্বয়ংক্রিয়ভাবে অক্ষম না হয় তবে আপনাকে অক্ষম করতে হবে।

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