স্বয়ংক্রিয় সেভিং দ্য ওয়ার্ল্ড


63

আপনি ডেসমন্ড হিউম গত 3 বছর ধরে আপনি এবং আপনার সঙ্গী কেলভিন একটি কম্পিউটারের দাস হয়ে গেছেন যে বিশ্বকে বাঁচাতে প্রতি 108 মিনিটে এটিতে একটি নির্দিষ্ট সিকোয়েন্স প্রবেশ করা প্রয়োজন।

4 8 15 16 23 42

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

আপনি সিদ্ধান্ত নেবেন যে আপনাকে বেরোনোর ​​দরকার। পালাতে আপনি সিদ্ধান্ত নিয়েছেন যে আপনি একটি ভেলা তৈরি করবেন এবং দ্বীপে যাত্রা করবেন। তবে তারপরে আপনি খারাপ খবরটি বুঝতে পারেন: আপনি এখানে আটকে আছেন। আপনি বিশ্বের সংরক্ষণ করা প্রয়োজন।

তবে তারপরে আপনি সুসংবাদটি বুঝতে পারেন: আপনি একজন প্রোগ্রামার! আপনি বিশ্ব বাঁচাতে স্বয়ংক্রিয় করতে পারেন! উত্তেজিত, আপনি কম্পিউটারে ছুটে এসেছেন এবং আপনার বিশ্বস্ত অজগর দক্ষতা ব্যবহার করে আপনার জন্য নম্বরগুলি প্রবেশের জন্য একটি দ্রুত স্ক্রিপ্ট বানাবেন wh

import time

while True:
    print "4 8 15 16 23 42"
    time.sleep(60 * 107)

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

Bad command or file name.

হুঁ, আজব। ওহ ভাল, আসুন সি ++ চেষ্টা করি।

#include <iostream>
#include <unistd.h> 

int main()
{
    while (true)
    {
        std::cout << "4 8 15 16 23 42" << std::endl;
        sleep(60 * 107);
    }
}

না! সি ++ পাওয়া যায় নি। আপনি ভাবতে পারেন এমন প্রতিটি ভাষা চেষ্টা করে দেখুন। জাভাস্ক্রিপ্ট, রুবি, পার্ল, পিএইচপি, সি #। কিছুই নেই। এই কম্পিউটারটি সে সময়ের জনপ্রিয় সমস্ত ভাষার আগে তৈরি হয়েছিল।

চ্যালেঞ্জ

আপনার অবশ্যই একটি প্রোগ্রাম লিখতে হবে যা এটি করবে:

1) ঠিক এটি মুদ্রণ করুন: "4 8 15 16 23 42" (উদ্ধৃতি ব্যতীত)

2) 104 থেকে 108 মিনিটের মধ্যে কিছু সময় অপেক্ষা করুন। ( দ্য লস্ট উইকির মতে )

৩) চিরকাল পুনরাবৃত্তি করুন। (বা আপনি যতক্ষণ না বুঝতে পারছেন যে এটি সমস্ত বিস্তৃত কেলেঙ্কারী, এবং অলস লেখার কারণে আপনি একটি অদ্ভুত লম্বা আটকে আছেন এবং এমন প্রশ্ন জিজ্ঞাসা করছেন যাগুলির উত্তর নেই don't ধন্যবাদ জে জে আব্রামস!)

তবে একটি ধরা আছে: আপনি সোয়ান স্টেশনের কম্পিউটারটি চলতে সক্ষম হতে পারে এমন একটি ভাষা ব্যবহার করা উচিত। ধরে নিচ্ছি যে

ক) নির্মাণের সময় কম্পিউটারটি আপ টু ডেট ছিল,

খ) কম্পিউটার সফ্টওয়্যার সম্পর্কিত কোনও আপডেট নেই, এবং

গ) কোনও ইন্টারনেট সংযোগ উপলব্ধ নেই (যার অর্থ আপনি গল্ফসক্রিপ্টটি ডাউনলোড করতে পারবেন না ...),

এবং রাজহাঁস স্টেশন, নির্মাণ তারিখ জন্য আমাদের সেরা অনুমান উপার্জন (আবার, লস্ট উইকি। )

এর অর্থ আপনাকে এমন একটি ভাষা ব্যবহার করতে হবে যা 1977 সালের 31 ডিসেম্বর বা তার আগে প্রকাশিত হয়েছিল।


কয়েকটি বিধি স্পষ্টতা:

  • গ্রন্থাগারগুলি অন্তর্ভুক্ত করা ঠিক আছে তবে একই নিয়ম প্রযোজ্য (গ্রন্থাগারগুলি অবশ্যই 1977-এর পূর্ববর্তী হওয়া উচিত)।

  • আপনাকে ওএস সামঞ্জস্যতা নিয়ে চিন্তা করতে হবে না।

  • যদি আপনি systemবা আপনার ভাষা সমতুল্য হন তবে আপনাকে অবশ্যই প্রমাণ করতে হবে যে আপনি যে কোনও সিস্টেম কমান্ড ব্যবহার করেন তা 1978 এর আগেই পাওয়া যেত A উইকিপিডিয়া নিবন্ধ সম্ভবত এটি প্রমাণ করার সেরা উপায়।

  • আপনি প্রোগ্রামটি কখন শুরু করবেন তা বিবেচ্য নয়, যতক্ষণ না এটি বিকল্প মুদ্রণ এবং ঘুমের ধরণে শেষ হয়। (প্রিন্ট-স্লিপ-প্রিন্ট-স্লিপ ... এবং স্লিপ-প্রিন্ট-স্লিপ-প্রিন্ট ... উভয়ই গ্রহণযোগ্য)

এটি কোড-গল্ফ, তাই বাইট জেতে সংক্ষিপ্ত উত্তর।


প্রতিটি আউটপুট শেষে একটি নতুন লাইন প্রয়োজন?
মেগো

3
@ মেগো হ্যাঁ, অন্যথায় সংখ্যাগুলি আসলে প্রবেশ করত না ।
ডিজেএমসিএমহেম

উত্তর:


11

এপিএল , 28 24 25 24 বাইট

এটি এসটিএসসির এপিএল * প্লাস এবং ১৯ 1977 সালে আইপিএসএর শার্পাপল-এ কাজ করেছিল এবং আধুনিক এপিএলগুলিতে প্রচুর নতুন বৈশিষ্ট্য রয়েছে, এটি আজও সমস্ত বড় এপিএলগুলিতে কাজ করে:

+\4 4 7 1 7 19
→×⎕DL 6360

প্রথম লাইনটি প্রদর্শিত সংখ্যাগুলির সংখ্যক যোগফলকে মুদ্রণ করে, যা প্রয়োজনীয় সংখ্যা। দ্বিতীয় রেখাটি ডিএল 63৩60০ সেকেন্ড (106 মিনিট) পরে তার সাইনামটি নেয় (1, স্পষ্টতই), এবং সেই লাইনে যায় (যেমন পূর্ববর্তী, সংখ্যা-মুদ্রণ এক)।

তবে, ১৯66 from সাল থেকে এপিএল (৩ (০ ( আইবিএম সিস্টেম / 360 for০ এর জন্য এপিএল ) আসলে এটি একটি বাইট দ্বারা বেধে দেয় ( ফ্রি আইবিএম / ৩0০ এমুলেটরে পরীক্ষিত ):

+\4 4 7 1 7 19
5⌶19E5
→1

ঘুম আমি-মরীচি ( " আইবিএম ?" - এটা পাবেন) এ অপেক্ষার সময় লাগে jiffies এর 1 / 300 তম এক সেকেন্ডের, তাই আমরা 19 × 10 অপেক্ষা করুন 5 jiffies = 105 মিনিট এবং 33 1 / 3 দ্বিতীয়।


আমি এখন থেকে আমার সমস্ত সময় পরিমাপ কিলোজফি এবং মেগাজিফিতে দিচ্ছি।
পাভেল

+\⎕A⍳'EEHBHT'(if ⎕IO=0)
ngn

@ জিএন এপিএল * প্লাস নেই ⎕A
অ্যাডম

@ আদম +\4 4 7 1 7 19?
এনজিএন

@ আদম পিং ^
ngn

26

এমএমপিএস - 30 টি অক্ষর, চক্র 1966 (এএনএসআই মান 1977 সালে প্রথম)

কোড গল্ফে আমার প্রথম প্রচেষ্টা, আমরা এখানে যাই!

f  w "4 8 15 16 23 42" h 6420

বোস্টনের ম্যাসাচুসেটস জেনারেল হাসপাতাল দ্বারা নির্মিত এমএইচআরএস এখনও ইএইচআর সফ্টওয়্যারটির একটি জনপ্রিয় ভাষা। সর্বাধিক পরিচিত বাস্তবায়নটি ডাব্লুআইয়ের ভেরোনায় এপিক সিস্টেমস ms


6
দারূন কাজ! এমএমএমপিএস কোড গল্ফিংয়ের জন্য আসলে আপনার আদর্শের নরকের নির্দিষ্ট বৃত্তটিতে প্রবেশ করতে চাইলে ...

2
বিশ্ব যদি ঝুঁকিতে থাকে তবে আমি শুরুতে "ইউ 0"
লাগিয়ে দিতে পারি

5
@ পিএসআর, আরও গুরুত্বপূর্ণ কী: বিশ্ব বা কোড গল্ফিং বাঁচানো ?!
অ্যান্ড্রু রবিনসন

2
@psr আপনি কি এমন কাউকে রসিকতা ব্যাখ্যা করতে পারেন যিনি এর আগে কখনও এমএমএসপিএস শুনে নি? আমি না, শুধু আহ - কাল্পনিকভাবে। এমএমএসপিএসের কথা শোনেনি এমন কেউ যদি এতে হোঁচট খায়। ;)
DJMcMayhem

3
@ ডিজেএমসিএমহেম - রাইট স্টেটমেন্টটি ("ডাব্লু") বর্তমান আউটপুট ডিভাইসে লিখেছে (কোন ডিভাইসটি বর্তমান তা একটি বৈশ্বিক মান হিসাবে বিবেচিত হয় আপনি সেই ধারণাটি পছন্দ করেন কিনা)। বর্তমান ডিভাইস সম্ভবত স্ট্যান্ডার্ড আউটপুট হতে চলেছে। তবে ইউ 0 এটি স্ট্যান্ডার্ড আউটপুটে সেট করে (সাধারণত, তবে এতে যাওয়া আর কারও কাছে মজার হবে না)।
পিএসআর

20

টেকো, 53 বাইট

টেকো (পাঠ্য [পূর্বে টেপ] সম্পাদক এবং সংশোধক) 1932 সালে উত্থিত একটি পাঠ্য সম্পাদক It এটি স্ট্যান্ড স্টোন প্রোগ্রাম চালাতেও ব্যবহার করা যেতে পারে। এটি পিডিপি, ভ্যাক্সেন ইত্যাদির অত্যাধুনিক সম্পাদক

টেকোর ম্যানুয়াল অনুসারে ^Hকমান্ডটি দিনের সময় দেয়। আপনার অপারেটিং সিস্টেম এবং পাওয়ার সাপ্লাই চেক করে নেওয়ার বিষয়টি নিশ্চিত করুন, যেহেতু সময়ের এককটি আপনার মেশিন অনুসারে পরিবর্তিত হতে পারে:

OS/8:      ^H = 0
RT-11:     ^H = (seconds since midnight)/2
RSTS/E:    ^H = minutes until midnight
RSX-11:    ^H = (seconds since midnight)/2
VAX/VMS:   ^H = (seconds since midnight)/2
TOPS-10:   ^H = 60ths of a second since midnight
(or 50ths of a second where 50 Hz power is used)

নিম্নলিখিত প্রোগ্রামটি এমন সিস্টেমে কাজ করে যেখানে দিনের সময়টি সেকেন্ড / 2 এ মাপা হয়:

I4 8 15 16 23 42
$<HT^HUA<^H-QAUDQD"L43200%D'QD-3180;>>

নোট করুন ^Hএবং $যথাক্রমে, কন্ট্রোল-এইচ এবং ইস্ক্যাপে স্ট্রাইক করে প্রবেশ করা উচিত।

প্রোগ্রামের নম্বরগুলি নিম্নলিখিত মেশিনগুলির জন্য সামঞ্জস্য করা যেতে পারে:

   (number)        43200     3180
RSTS/E              1440      106
TOPS-10 60 Hz    5184000   381600
TOPS-10 50 Hz    4320000   318000
OS/8             goodbye, world...

20

বোর্ন শেল, 47 45 বাইট

while echo 4 8 15 16 23 42;do sleep 6420;done

2
আমাকে এটি মারধর। আমি সেই প্রমাণটি খুঁজে পাওয়ার চেষ্টা করছিলাম যা sleepআসলে তখন পাওয়া যায় - আপনি কি তা খুঁজে পেয়েছেন? en.wikedia.org/wiki/…
ডিজিটাল ট্রমা

আপনি শর্ত sleepহিসাবে ব্যবহার করতে পারেন while। 2 বাইট
সাশ্রয় করুন

@ পিএলজি এটি সংখ্যা সিকোয়েন্স আউটপুট করার আগে ঘুমাবে , যা অনুমোদিত হবে বলে মনে হচ্ছে না (এটি প্রোগ্রামটি চালানোর সাথে সাথে ক্রমটি প্রিন্ট করতে হবে, তারপরে ঘুমাবে)।
ডুরকনব

5
সুতরাং আপনি শেষবারের পরে অবধি প্রোগ্রামটি শুরু করবেন আপনি ম্যানুয়ালি নম্বরগুলি ইনপুট করুন। ;)
রজার

1
ইউনিক্স সংস্করণ এর মধ্যে স্লিপ কমান্ড অন্তর্ভুক্ত ছিল (দেখুন man.cat-v.org/unix-6th/1/sleep )।
মাত্তেও ইটালিয়া


13

FORTRAN 66 ( 108 98 বাইট)

      PROGRAM D 
2     WRITE (*,*) '4 8 15 16 23 42'
      CALL SLEEP(6420)
      GOTO 2
      END

এটি নিশ্চিত যে প্রশ্নে কম্পিউটারটিতে ফোরট্রান সংকলক ছিল, কারণ এটি যুগে বৈজ্ঞানিক এবং প্রকৌশল ক্ষেত্রে প্রাধান্য পেয়েছিল। আমি জন্মসূত্রে বছরের 18 বছর পরে জন্মগ্রহণ করেছি, তবে বিশ্ববিদ্যালয়ে আমার গণিতের প্রোগ্রামের সময় আমরা ফরট্রান শিখলাম। একটি মজাদার বক্তৃতা আমরা শিখেছি কিভাবে পাঞ্চিং কার্ডগুলিতে প্রোগ্রাম করা যায়। এখানে এটি সঠিকভাবে ফর্ম্যাট করা এত সহজ নয়, প্রতিটি কমান্ডের আগে blan টি ফাঁকা স্থান থাকা উচিত এবং আমি কেবল ফোর্টরান for 77 এর জন্য স্লিপ-ফাংশনটির একটি রেফারেন্স খুঁজে পেতে পারি তবে এটি ফোরট্রান চতুর্থ এবং 66 66-তে ইতিমধ্যে থাকতে হবে।

PS: আমরা লেবেল 42 এর পরিবর্তে 1 টি লেবেল ব্যবহার করে একটি বাইট বন্ধ করতে পারি।

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


@ প্রফেসহেস্কিলার না, বাম 7 টি কলামগুলি সংরক্ষিত আছে যাতে আপনি কেবল লাইন ৪ এর শেষে একটি বাইট সংরক্ষণ করেন
ফ্রডোসকিওয়ালকার

1
ঠিক ঠিক, আমি কেবল একটি
বাইটই

3
আহ, বাধ্যতামূলক সাদা স্থান আমার চোখে এক নস্টালজিক টিয়ার
ফেলেছে

আপনি বন্ধ প্রতিস্থাপন দ্বারা একটি বাইট শেভ পারে 60*107সঙ্গে 80**2খুব।
চিহ্নিত করুন

ঠিক আছে, তবে তারপরে কেউ কেবল 6420 ব্যবহার করতে পারে
বের্সেলোর

11

ম্যাকলিস্প, 47 46 বাইট

(do()(())(print"4 8 15 16 23 42")(sleep 6360))

1974 রেফারেন্স ম্যানুয়াল (পিডিএফ) থেকে নেওয়া সমস্ত নির্মাণ । আমার কাছে ম্যাকলিস্প ইন্টারপ্রেটার না থাকায় পরীক্ষিত নয়।


1
একটি বাইট সংরক্ষণ করুন, nilলেখা যেতে পারে()
coredump

10

আল্টায়ার বেসিক

নিশ্চিতভাবেই, ডেসমন্ড এবং কেলভিনের কেবল মজা করার জন্য একটি Altair 8800 (বা একটি এমুলেটর) থাকতে হবে। আল্টায়ার বেসিক (বিল গেটস নামে পরিচিত কিছু লোকের কাছ থেকে, মাইক্রো সফট নামে পরিচিত কিছুটা দু'দিকের স্টার্ট-আপ) 1975 সালে প্রকাশিত হয়েছিল।

অভ্যন্তরীণ FORলুপটি এক মিনিট স্থায়ী হয় তা নিশ্চিত করার জন্য ডেসমন্ডকে কিছুটা সূক্ষ্ম সুর করতে হবে । তারপরে, প্রত্যেকে জানত ব্যস্ত লুপগুলি ভুল ছিল, তবে প্রত্যেকে সেগুলি ব্যবহার করেছিল!

1 REM ADJUST "D" AS REQUIRED
2 LET D = 1000
3 PRINT "4 8 15 16 23 42"
4 FOR A = 0 TO 105 * 60
5 REM THIS LOOP SHOULD LAST ONE MINUTE +/- 0.05 SECONDS
6 FOR B = 0 TO D
7 LET C = ATN(0.25)
8 NEXT
9 NEXT
10 GOTO 3

বিকল্প হিসাবে, ডেসমন্ড 88-আরটিসি বোর্ড ইনস্টল করতে পারে (উপাদানগুলি থেকে একত্রিত !: http://www.classiccmp.org/altair32/pdf/88-virtc.pdf ) এবং বিঘ্নের মাধ্যমে রিয়েল টাইম ক্লক বন্ধ হয়ে অ্যাক্সেস পেতে পারে শক্তি লাইন বা অভ্যন্তরীণ স্ফটিক।

ঘড়ির ইনপুটটি পরিচালনা করতে তাকে একটি বিঘ্নিত রুটিন লিখতে হবে যা ফলস্বরূপ কোনও বন্দর আপডেট করতে পারে, বলে যে প্রতি 59 সেকেন্ডের জন্য এক সেকেন্ডের জন্য মাটিতে আনা যায়, তারপরে উচ্চতা বাড়ে।

আল্টায়ার বেসিকের একটি WAITক্রিয়াকলাপ ছিল , সুতরাং কোডটি নীচের মতো কিছুতে সহজ করা হবে (আমি কোনও বন্দর তালিকা পাইনি, সুতরাং এটি অপব্যবহৃত হবে এই আশায় আমি কেবল 125 টি বেছে নিয়েছি)):

1 PRINT "4 8 15 16 23 42"
2 FOR A = 0 TO 105 * 60
3 WAIT 125,0
4 WAIT 125,255
5 NEXT
6 GOTO 1

এটি আসলে একটি মজার ছোট্ট প্রশ্ন ছিল, কিছু সত্যিকারের প্রাথমিক কম্পিউটারে ফিরে। সেই পুরানো টাইমাররা (আমাকে সহ) নিশ্চয়ই ধৈর্য ধারণ করেছিলেন!


2
আহ, ব্যস্ত লুপগুলি ... +1
জিওবিটস

4
হুঁ, ডেসমন্ড, আল্টায়ার ... কোনও সুযোগেই কি "ইজিও" নামক কোনও ভাষা আছে?
Kroltan

10

ইউনিক্স সিস্টেম 6 - 73 68 74 টি অক্ষরের জন্য PDP-11 এসেম্বলারের

70 এর দশকের কথা বলা, ইউনিক্স এবং হার্ডওয়্যার যেখানে এটি শুরু হয়েছিল সেখানে সম্মান জানানো বাধ্যতামূলক!

s:mov $1,r0
sys write;m;18
mov $6240.,r0
sys 43
br s
m:<4 8 15 16 23 42;>

আপনি সহজেই এটি এখানে চালাতে পারেন (তবে প্রথমে আপনাকে edপাঠ্য সন্নিবেশ করানোর জন্য পুনরায় আবিষ্কার করতে হবে - আমার নির্দিষ্ট ক্ষেত্রে, আমাকে কীভাবে এটিতে কীভাবে সম্পাদনা করতে হবে তা আবিষ্কার করতে হয়েছিল :))।

এসেম্বলড এটি 108 বাইট হয়ে যায়।

# cat mini.as
s:mov $1,r0
sys write;m;18
mov $6240.,r0
sys 43
br s
m:<4 8 15 16 23 42;>
# as mini.as
# ls -l a.out mini.as
-rwxrwxrwx  1 root      108 Oct 10 12:36 a.out
-rw-rw-rw-  1 root       74 Oct 10 12:36 mini.as
# od -h a.out
0000000 0107 0022 0000 0000 0018 0000 0000 0000
0000020 15c0 0001 8904 0012 0010 15c0 0004 8923
0000040 01f7 2034 2038 3531 3120 2036 3332 3420
0000060 3b32 0000 0000 0000 0002 0000 0000 0000
0000100 0000
0000120 0000 0000 0073 0000 0000 0000 0002 0000
0000140 006d 0000 0000 0000 0002 0012
0000154 
# ./a.out
4 8 15 16 23 42;

1
2 টি কম অক্ষরের জন্য \ n সরান, তিনি বলেননি এটি আলাদা লাইনে থাকতে হবে। :)
অ্যান্ড্রু রবিনসন

@ অ্যান্ড্রু রবিনসন: এটি কিছুটা অন্যায় বলে মনে হচ্ছে, এরপরে যে সমস্ত আউটপুট হবে তার ৪ টি একসাথে থাকবে ৪২ টি ... আমি এর পরিবর্তে একটি সেমিকোলন দিয়ে (n (দুটি অক্ষর) পরিবর্তন করতে পারব। এছাড়াও, msgঅপব্যয়যুক্ত, আমি m(অন্যান্য 4 বাইট শেভ) সাথে যেতে পারি ।
মাত্তেও ইটালিয়া

1
আপনি brপরিবর্তে ব্যবহার করে একটি চিঠি এবং একটি নির্দেশের শব্দ সংরক্ষণ করতে চান jmp, আপনি না? এছাড়াও, লেখার জন্য ফাইলের বর্ণনাকারীটিকে আর -0 করতে হবে - আপনার প্রথম লুপটির জন্য আপনার সম্ভবত এটিতে 1 (বা 2) থাকতে পারে তবে আপনি নিজের ঘুমের সময়টি এটি ভেঙে ফেলছেন।
র্যান্ডম 832

@ র্যান্ডম 832: ওহো, এটি পরীক্ষা করার সময় সম্ভবত এটি কাজ করেছিল কারণ আমি 1 বা 2 কে ঘুমের সময় হিসাবে ব্যবহার করেছি যদি এটি কাজ করে তবে তা চেষ্টা করার জন্য। এর সম্পর্কে সঠিক br, এটির জন্য ধন্যবাদ এবং অন্য কিছু কৌশল (প্রধানত সাদা স্থান কাটা এবং যখনই সম্ভব অষ্টাল ব্যবহার করা) আমরা প্রথমটি যোগ করে এমনকি 74 টি অক্ষর পেয়েছি mov
মাত্তেও ইটালিয়া

8

লোগো, by১ বাইট (সম্ভবত) বা ৪৮ বাইট (সম্ভবত না)

দুর্ভাগ্যক্রমে, আমি লোগো সিস্টেম: বিবিএন দ্বারা প্রিলিমিনারি ম্যানুয়াল (১৯6767), বা এমআইটি লোগো গ্রুপ (১৯ +০ +) এর কোনও রেফারেন্স খুঁজে পাইনি। এলসিএসআই দ্বারা অ্যাপল লোগোটি সামান্য সাম্প্রতিক (~ 1980)। যাইহোক, অনলাইন বইয়ের উপর ভিত্তি করে নিম্নলিখিতগুলির কিছু ভিন্নতা সম্ভবত সেই সময়ে কাজ করেছিল। মনে রাখবেন যে অপেক্ষারত 60 অপেক্ষা 60 সেকেন্ডের জন্য অপেক্ষা করে।

TO a
LABEL "l
PRINT [4 8 15 16 23 42]
WAIT 381600
GO "l
END
a

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

TO a
PRINT [4 8 15 16 23 42]
WAIT 381600
a
END
a

3
টিসিও তখন একেবারে উপলব্ধ ছিল। (হ্যাঁ, আমি অভিজ্ঞতা থেকে জানি।) টিসিও লিস্পের (এবং তারপরে স্কিম) আদর্শ ছিল; সম্প্রতি এটি এটি বিদেশী হিসাবে দেখা গেছে।
ধনী

7

সিবিএম বেসিক 1.0, 52 38 টি অক্ষর, টোকানাইজড 45 31 বাইট

1?"4 8 15 16 23 42":fOa=1to185^3:nE:rU

১৯B7 সালের অক্টোবরে কমোডোর পিইটি-এর সাথে সিবিএম বেসিক ১.০ প্রবর্তিত হয়েছিল। কমান্ডগুলি সাধারণত বড় হাতের এবং সিবিএম গ্রাফিক্সের অক্ষরে প্রদর্শিত হত, তবে স্বাচ্ছন্দ্যের জন্য আমি তাদের ছোট হাতের + বড়হাতে এখানে তালিকাভুক্ত করেছি (আমার এবং আপনার উভয়ই! :-) )। আরও মনে রাখবেন যে actually আসলে ↑ হিসাবে প্রদর্শিত হবে ↑ ডিটোকেনাইজড, এর সাথে LISTএই তালিকা তৈরি করার পরে ফলাফল হবে:

1 PRINT "4 8 15 16 23 42":FOR A=1 TO 185^3:NEXT:RUN

পিইটির 6502 1MHz এ চলেছে, সুতরাং এটি সম্পূর্ণ হতে 105 মিনিট বা তার বেশি সময় লাগবে।

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


7

পাস্কাল - 107 95 বাইট

PROGRAM S;USES CRT;BEGIN WHILE TRUE DO BEGIN WRITELN('4 8 15 16 23 42');DELAY(6300000);END;END.

অবরুদ্ধ সংস্করণ:

PROGRAM S;
USES CRT;
BEGIN
    WHILE TRUE DO
    BEGIN
        WRITELN('4 8 15 16 23 42');
        DELAY(6300000); { 105 minutes * 60 seconds * 1000 milisseconds }
    END;
END.

4

চতুর্থ , 50 বাইট

যদিও চৌদ্দ -79টি প্রাথমিক মানসম্পন্ন সংস্করণ, ভাষাটি 1968 সালে শুরু হয়েছিল এবং আইবিএম 1130-তে এটি ব্যবহারযোগ্য ছিল 197 1977 আসার আগে এটি অন্যান্য সিস্টেমে ব্যবহৃত হয়েছিল। এই শব্দগুলি সমস্ত উপলব্ধ ছিল তা নিশ্চিত করার জন্য আমি আরও কিছুটা গবেষণা করতে পারি তবে আমি মোটামুটি নিশ্চিত যে ততক্ষণে এটি বিদ্যমান যথেষ্ট পর্যাপ্ত। এগুলি অবশ্যই ফোরথ -79 দ্বারা উপলব্ধ ছিল।

চিরকাল লুপস, স্ট্রিং প্রিন্টিংয়ের মধ্যে is৪০০০০০০ মিলি সেকেন্ডের অপেক্ষায়। কোনও নিউলাইন মুদ্রিত হয় না।

: F 0 1 DO 6420000 MS ." 4 8 15 16 23 42" LOOP ; F

4

স্মার্টটাক, 95 (বা 68 টি যদি লুফোল অনুমোদিত হয়)

1972 সাল থেকে প্রায় ছিল

|i|[i:=0.[i<5] whileTrue: [(Delay forSeconds: 6480) wait.Transcript show: '4 8 15 16 23 42'.]]fork

এটির কোনও অভিজ্ঞতা নেই, এটি উইকিপিডিয়ায় দেখেছেন: পি
কীভাবে লুপ এবং দেরি করবেন তা অনলাইনে দেখেছি, সিনট্যাক্সটি সঠিক হওয়া উচিত তবে এটি চালানোর কোনও উপায় খুঁজে পেল না।

সম্ভাব্য লুফোল

এটি প্রতি 108 মিনিট পরে ক্রমটি মুদ্রণ করা উচিত, তবে এটি 108 মিনিট হতে হবে তা উল্লেখ করে না।
এটি কোডকে ছোট করতে পারে

|i|[i:=0.[i<5] whileTrue: [Transcript show: '4 8 15 16 23 42'.]]fork

কোডটি কোনও বিরতি ছাড়াই ক্রমটি মুদ্রণ করবে, সুতরাং এটির গ্যারান্টিযুক্ত এটি 108 মিনিটের পরেও মুদ্রণ করবে।


9
তবে সমস্যাটি বলে Wait some time between 104 and 108 minutes, তাই আমি মনে করি না লুপোলটি সম্ভব is
matsjoyce

@matsjoyce হয় কেন আমি একটি টাইমার সঙ্গে এক ছাড়া :) এক পোস্ট
Teun প্রন্ক

3
যদিও আপনার লুপোল চ্যালেঞ্জটির পক্ষে কাজ করে না, আমি অবাক হয়েছি যে ডেসমন্ড এটি থেকে সরে যেতে সক্ষম হবে কিনা। আমি নিশ্চিত যে 104-108 মিনিটের উইন্ডোটির মধ্যে না থাকলে কম্পিউটারটি কিছু না করে, তাই এটি প্রবেশ করানো অতিরিক্ত "4 8 15 16 23 42" উপেক্ষা করবে। যাইহোক, আমি নিশ্চিত যে ওয়াল্ট তাকে যে সমস্ত নম্বর পাঠাচ্ছে তার দ্বারা খুব বিভ্রান্ত হবে। = ডি
ডিজেএমসিহেম

3

এসএএস, 82 75 69

data;
file stdout;
a:;
put "4 8 15 16 23 42";
a=sleep(6300,1);
goto a;
run;

একটি সাধারণ গল্ফিং ভাষা নয়, তবে আমি মনে করি যে এটি এই চ্যালেঞ্জের জন্য যোগ্যতা অর্জন করে, ধরে নিই যে file stdout1977-এর এসএএস-এ এটি বৈধ ছিল।

উন্নতি:

  • data _null_;-> data;characters টি অক্ষর সংরক্ষণ করে (এবং এখন স্ট্যান্ডআউটে মুদ্রণের পাশাপাশি একটি খালি ডেটাসেট তৈরি করে)।
  • গোটো দিয়ে ডু-উইল লুপ প্রতিস্থাপন করা হয়েছে - 6 টি অক্ষর সংরক্ষণ করে

3

থম্পসন শেল, 1971 (স্লাইড কমান্ডের জন্য 1973)

43 বাইট

: x
echo 4 8 15 16 23 42
sleep 6480
goto x

যেহেতু বোর্ন শেলটি ১৯ 1977 সালে বিদ্যমান ছিল, ১৯ 1979৯ সালে v7 অবধি ইউনিক্সের প্রকাশিত সংস্করণে ছিল না The মূল ইউনিক্স শেলের কোনও অভিনব লুপ নিয়ন্ত্রণ আদেশ ছিল না। (আপনি যদি একটি লুপটি শেষ করতে চান তবে আপনি ifকমান্ডটি গোটো এড়িয়ে যেতে পারেন )


এটি exec $0একটি ছোট সঞ্চয় উপর আছে goto?
নিল

2

সি, 50 বাইট

অন্যান্য সি সমাধানের চেয়ে কম, এবং এটি কোনও সদৃশ নয়। অন্যান্য সি সমাধান সম্পর্কে ডিজিটাল ট্রমা (প্রায়) অভিন্ন মন্তব্য লক্ষ্য করার আগে আমি আসলে এটি লিখেছিলাম।

main(){for(;;sleep(6240))puts("4 8 15 16 23 42");}

আমি যুক্তি দেব যে এটি অন্যান্য সমাধানে একটি তুচ্ছ পরিবর্তন / উন্নতি, এবং এইভাবে একটি দ্বিগুণ। এটি লেখার আগে আপনি মন্তব্যটি দেখেছেন কিনা তা অপ্রাসঙ্গিক।
মেগো

1

কোবল, 240 বাইট

হ্যাঁ, নেতৃস্থানীয় সাদা স্থানটি উল্লেখযোগ্য significant সংকলন এবং মত চালান cobc -x save.cob; ./save। ( -xবিকল্পটি একটি ভাগ করা lib এর বিপরীতে একটি এক্সিকিউটেবল উত্পাদন করে এবং সুতরাং আমি মনে করি না এটি গণনা করা দরকার))

       IDENTIFICATION DIVISION.
       PROGRAM-ID.S.
       PROCEDURE DIVISION.
           PERFORM UNTIL 1<>1
              DISPLAY"4 8 15 16 23 42"
              CALL"C$SLEEP"USING BY CONTENT 6402
           END-PERFORM.
           GOBACK.

যদি আমরা বিরক্তিকর হতে চাই তবে আমরা --freeফ্রি-ফর্ম্যাট কোডের জন্য সংকলন বিকল্পটি যুক্ত করতে পারি , তারপরে 158 + 6 = 164 বাইট তবে এটি '77 এ ফিরে কাজ করার সম্ভাবনা কম।

IDENTIFICATION DIVISION.
PROGRAM-ID.S.
PROCEDURE DIVISION.
PERFORM UNTIL 1<>1
DISPLAY"4 8 15 16 23 42"
CALL"C$SLEEP"USING BY CONTENT 6402
END-PERFORM.
GOBACK.

1

ALGOL 60/68 / W, 74 47 50 বাইট

a68g save.a68ব্যবহার করে এই সম্পূর্ণ প্রোগ্রামটি চালান algol68g

ALGOL এর ঘুমানোর অন্তর্নির্মিত উপায় নেই তবে আমরা মূলত চালাতে পারি /bin/sleep:

DO print("4 8 15 16 23 42");system("sleep 6380")OD

পুরানো উত্তর:

কম্পিউটারে কাজ করার একটি ভাষা একটি ঘুম builtin নেই, তাই আমরা অপব্যবহার করতে pingযা সময় একটি ইউনিক্স (থেকে ধারণার উপর নিশ্চয় হয় এখানে জন্য) 74 69 বাইট

DO print("4 8 15 16 23 42");system("ping 1.0 -c1 -w6240>/dev/null")OD

1
এতো চালাক! আপনি বলতে পারেন যে প্রোগ্রামটি "স্লিপ-পিং"। : পি
ডিজেএমসিমেহেম

নিবন্ধন করুন
বিড়াল

@DrGreenEggsandIronMan যেখানে জন্য লাইন কোথায় systemঠিক আছে এবং ঠিক আছে না? আপনি ঠিক আছেন system("ping ...")তবে চ্যালেঞ্জটি বলে যে আমি systemসি থেকে উদাহরণস্বরূপ ব্যাশ কমান্ড ব্যবহার করতে পারি না । ALGOL মুদ্রণ করছে তবে আমার ঘুমানোর ping(8)বা sleep(1)ঘুমানোর ছাড়া আর কোনও উপায় নেই ।
বিড়াল

ঠিক আছে, আমি যখন চ্যালেঞ্জটি লিখেছিলাম তখন আমি গুগল করে দেখলাম যে বাশ 89 সালে প্রকাশ পেয়েছে, তাই আমি ভেবেছিলাম "ব্যাশ ব্যবহার করা প্রতারণা করছে!"! আমি মনে করি বড় সমস্যাটি হ'ল system("sleep")সেই সময় থেকে কোনও ওএসে কাজ করবে কিনা । আমি পোস্টটি সম্পাদনা করব।
ডিজেএমসিএমহেম

1
আমার মনে হয় না এনসিপির পক্ষে পিং ছিল। ইন্টারনেটের গোড়ার দিকে '80s পর্যন্ত বিভিন্ন TCP / IP এর ট্র্যানজিশনের করা হয়নি, এবং সরাসরি ICMP ইকো অনুরোধ প্রথম উল্লেখ RFC777 হচ্ছে বলে মনে হচ্ছে, এপ্রিল 1981 তারিখের
ninjalj
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.