সংক্ষিপ্ত প্রোগ্রাম যা ক্রমাগত মেমরি বরাদ্দ করে


49

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

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

সংক্ষিপ্ততম কোড জিতেছে।


13
একটি স্ট্যাক ওভারফ্লো একটি বৈধ সমাধান? স্মৃতিটি কি ফাঁস করতে হবে বা কেবল বরাদ্দ করতে হবে?
গম উইজার্ড 3

1
@ ওয়েট উইজার্ড মেমরিটি ফাঁস হতে হবে না, তবে এটি ক্ষয়িষ্ণু হওয়ার চেয়ে দ্রুত বরাদ্দ করতে হবে।
tbodt

2
আমার প্রোগ্রামটি যখন একবার অসীম স্মৃতি গ্রহণ করতে চায়, আমি তা পেতে পারি না। (reduce conj [] (range))(ক্লোজার) 737 এমবি পর্যন্ত পৌঁছে যায়, তারপরে কেবল বৃদ্ধি বাড়ানো বন্ধ করে দেয়। আইডিক কীভাবে এটি ক্রমাগত উপরে না যায়। এটি "মনে করে" আমি পুরো তালিকাটি শেষের দিকে মুদ্রণ করতে চাই, সুতরাং এটি কিছু ফেলে দেওয়া উচিত নয়। খুবই হতাশাজনক.
কার্সিজিনিট

14
স্বরে নোট করুন: পরীক্ষার আগে কোড সংরক্ষণ করুন। মেম-
লিকগুলি উপস্থাপন করা

1
আমি মনে করি আপনার আর একটি গল্ফ চ্যালেঞ্জ যুক্ত করা উচিত, যা এটির অনুরূপ তবে এটির চেয়ে আলাদা, জন্য বর্তমান চ্যালেঞ্জ, সব সময় প্রবেশ করুন লুপিং ও একটি একক বাইট বণ্টন জরিমানা করা উচিত। আপনার নতুন চ্যালেঞ্জের জন্য, এটি অপর্যাপ্ত হবে, তবে চিরতরে লুপিং এবং প্রতিবার ব্যবহৃত মেমরির পরিমাণ দ্বিগুণ করা ঠিক হবে।
বেনগোল্ডবার্গ

উত্তর:


46

ছত্রাক -98 ( cfunge), 1 বাইট

9

আমি এটি আগে পোস্ট করতাম তবে এটি পরীক্ষা করার সিদ্ধান্ত নিয়েছিলাম এবং আমার কম্পিউটারটিকে ব্যবহারযোগ্য স্থানে ফিরিয়ে নিতে কিছুটা সময় নিয়েছিল। cfungeঅপারেটিং সিস্টেমের গাদাতে ফুঞ্জ স্ট্যাক সংরক্ষণ করে (যা একটি ছোট মেমোরি সীমা দিয়ে প্রোগ্রামটি চালিয়ে সহজেই যাচাইযোগ্য, যা আমার আগে করা উচিত ছিল!), সুতরাং একটি অসীম বর্ধমান স্ট্যাক (এই প্রোগ্রামটির সাথে, যা কেবল 9বারবার ধাক্কা দেয় ; ফিঞ্জ প্রোগ্রামগুলি একটি লাইনের শেষে থেকে শুরু করে ডিফল্টরূপে শুরুর দিকে থাকে) চিরতরে স্মৃতি বরাদ্দ করবে। এই প্রোগ্রামটি সম্ভবত কিছু বেফঞ্জ -৩৩ বাস্তবায়নেও কাজ করে।

আরো আকর্ষণীয়:

"NULL #(4

এটি আমার প্রথম ধারণা ছিল এবং এটি একটি অসীম বরাদ্দ যা ফঞ্জ স্ট্যাকের উপর নির্ভর করে না (যদিও এটি ফুঞ্জ স্ট্যাকটিও ফুটিয়ে তোলে)। শুরু করার জন্য, "কমান্ডটি বাকী প্রোগ্রামটির একটি অনুলিপি স্ট্যাকের দিকে ঠেলে দেয় (এটি একটি স্ট্রিং, এবং প্রোগ্রামটি পুরো মোড়কে মুড়ে যায়, তাই কাছের উদ্ধৃতিটি ওপেন কোট হিসাবেও পরিবেশন করে)। তারপরে Nপ্রতিফলিত হয় (ডিফল্টরূপে এর কোনও অর্থ নেই), প্রোগ্রামটি পিছনের দিকে চালিত করে। "আবার রান এবং স্ট্যাকের প্রোগ্রাম পাহাড় জমে - সঙ্গে অন্য উপায় এই সময় বৃত্তাকার, Nতারপর প্রোগ্রাম, কাছাকাছি গোপন একটি 4 অক্ষর নাম (সঙ্গে একটি লাইব্রেরি লোড - স্ট্যাক উপরের 4(; NULLগ্রন্থাগার অংশ cfungeএর স্ট্যান্ডার্ড লাইব্রেরি)। NULLপ্রতিফলিত করতে সমস্ত বড় হাতের অক্ষরকে সংজ্ঞায়িত করে, তাই Lপ্রতিফলিত করে,#ফেরার পথে লাইব্রেরির লোড এড়িয়ে যায়, 4জাঙ্ককে ধাক্কা দেয় যা আমরা স্ট্যাকের জন্য যত্ন করি না এবং পুরো প্রোগ্রাম শুরু থেকেই পুনরাবৃত্তি করে। প্রদত্ত যে একাধিকবার একটি লাইব্রেরি লোড করার একটি প্রভাব রয়েছে এবং লাইব্রেরির প্রতিটি অনুলিপিটির জন্য একবার লাইব্রেরির কমান্ড তালিকা সংরক্ষণ করা প্রয়োজন (এটি ফান -৯৮ এর শব্দার্থ দ্বারা বোঝানো হয়েছে), এটি স্ট্যাক নন-স্ট্যাকের মাধ্যমে স্মৃতি ফাঁস করে (যা একটি ওএসের চেয়ে ভাষার তুলনায় "হিপ" সংজ্ঞায়নের বিকল্প পদ্ধতি)।


2
আমি কেবল এটি গ্রহণ করতে চলেছি ...
tbodt

সংখ্যাটি 9 হওয়া কি প্রয়োজনীয়? এটি 5 হলে এটিও কাজ করবে?
tbodt

স্ট্যাকের দিকে ধাক্কা দেয় এমন যে কোনও কিছু কাজ করে (সম্ভবত ব্যতীত 0; ফঞ্জ বাস্তবায়ন বা ওএস এটিকে অপ্টিমাইজ করার কোনও উপায় খুঁজে পেতে পারে, প্রদত্ত যে প্রশ্নে থাকা স্মৃতিটি ইতিমধ্যে জিরোতে পূর্ণ রয়েছে)। আমি 9স্বেচ্ছায় বাছাই করেছি ।

22
অগ্রহণযোগ্য কারণ আমি চাইছি আমার খ্যাতিটি এখনও 666
be

7
@tbodt গ্রহণ না করার বাস্তব কারণ নয়। আপনি যদি চান, আমি আপনার প্রশ্ন -1 করব। তারপরে আপনি যখন গ্রহণ করবেন তখন আপনার কাছে 703 টি থাকবে (নোট করুন আপনার এখন 703 রয়েছে, 666 নয়)।
NoOneIs এখানে

30

ব্রেইনফাক, 5 বাইট

+[>+]

এটির জন্য এমন একটি দোভাষী দরকার যা টেপের দৈর্ঘ্যের কোনও সীমাবদ্ধতা রাখে না।


2
আমি নিশ্চিত এটি + [> +] নাহলে এটি প্রথম পুনরাবৃত্তিতে থামবে। ;)
প্যারিস ডুডি

আপনি ঠিক বলেছেন, টাইপোর জন্য দুঃখিত।
vsz

40
বিরল সময়গুলির একটি যেখানে মস্তিষ্কের সমাধান সমাধান প্রতিযোগিতামূলক ...
ফ্লিপট্যাক

@ Flp.Tkc তবে এটি এখনও হারে। হতে পারে এটি
কোনও দিন

6
@ সিউইনহিনো: এটি ইতিমধ্যে একবারে সমস্ত গল্ফিং ভাষাগুলি> কোডগলফ.স্ট্যাকেক্সেক্সঞ্জ
প্রশ্নগুলি /

22

বাশ + কোর্টিলস, 5

অথবা

রুবি, ৫

`yes`

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

এটি রুবিতেও একটি বহুগ্লুটি দেখানোর জন্য @ জিবিকে ধন্যবাদ।


7
আমি একই লিখতে যাচ্ছিলাম এবং এটিকে একটি রুবি প্রোগ্রাম বলব।
জিবি

1
এবং পার্ল, আমি মনে করি।
অবলম্বন করুন

18

পাইথন, 16 বাইট

aকোনও ত্রুটি না আসা পর্যন্ত বাসা বাঁধে :

a=0
while 1:a=a,

প্রথম কয়েকটি পুনরাবৃত্তি (টিপলস হিসাবে) এর মতো দেখতে:

0
(0,)
((0,),)
(((0,),),)

এবং তাই এবং তাই ঘোষণা.


18

> <> (মাছ), 1 বাইট

0

এখানে চেষ্টা করুন!

0 আসলে কোনও হেক্সাডেসিমাল সংখ্যা 1-এফের জন্য প্রতিস্থাপন করা যেতে পারে।

ব্যাখ্যা

0in> <> মাছটিকে সাঁতার কাটার জন্য সহজভাবে একটি 1x1 কোডবক্স তৈরি করে It 0এটি স্ট্যাকের উপর ক্রমাগত একটি যোগ করে, ডানদিকে সাঁতার কাটায় যা পিছনে ফিরে আসে 0এবং এটিকে আবার স্ট্যাকটিতে যুক্ত করে। এটি চিরকাল চলবে।


2
এখন আমি ভাবছি যে এটিতে আরও কতগুলি 2-মাত্রিক ভাষাগুলি কাজ করে। তাদের বেশিরভাগ স্ট্যাক-ভিত্তিক, সর্বোপরি।

1
প্রায় কিউবিক্সে কাজ করে তবে মৃত্যুদন্ড কার্যকর করার লাইনে .সরানোর জন্য এটির একটি শীর্ষস্থানীয় (বা কোনও শ্বেতস্থান চর) প্রয়োজন 0
ETH প্রোডাকশনগুলি

1
আওোবোরোসে কাজ করে তবে একইভাবে নয়: দোভাষী 0000000...একজন একক পূর্ণসংখ্যার আক্ষরিক হিসাবে পড়ার চেষ্টা করেন এবং এটি যে স্ট্রিংটি তৈরি করে তা হ'ল আরও স্মৃতি গ্রহণ করে। এমন একটি প্রোগ্রাম যা এইভাবে কাজ করে তা aহ'ল (অসীমভাবে 10 ধাক্কা দেয়)।
DLosc

12

জাভা 101 বাইট

class A{public void finalize(){new A();new A();}public static void main(String[]a){for(new A();;);}}

একটি অবজেক্ট তৈরি এবং ফেলে দেওয়ার পরে একটি অন্তহীন লুপে মূল প্রোগ্রামটি ধরা। আবর্জনা সংগ্রহ প্রতিটি মুছে ফেলা ব্যক্তিদের জন্য 2 টি বস্তু তৈরি করে ফাঁসের কাজ করে


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

1
হ্যাঁ, আপনার কোডটি আমাকে চূড়ান্ত () @ পোক
মাস্টারএক্স 244

আমি মনে করি আপনি স্ট্যাটিক ইনিশিয়ালাইজারের সাথে মেইন প্রতিস্থাপনের মাধ্যমে এটি আরও সংক্ষিপ্ত করে তুলতে পারেন
19:25 এ tbodt

কেবল জাভা 6 পর্যন্ত কাজ করে এবং আমি কেবল আশেপাশে উচ্চতর সংস্করণ পেয়েছি
মাস্টারএক্স 244

2
হাহা আবর্জনা সংগ্রহকারীকে ব্যবহার করে ফাঁস হওয়ার কারণ! দুর্দান্ত ধারণা :)
মার্ক কে কোয়ান

12

পার্ল, 12 বাইট

{$"x=9;redo}

পার্লে, xঅপারেটর, বামদিকে একটি স্ট্রিং এবং ডানদিকে একটি সংখ্যা সহ একটি পুনরাবৃত্ত স্ট্রিং উত্পাদন করে। সুতরাং "abc" x 3মূল্যায়ন "abcabcabc"

x=অপারেটর বাম যুক্তি mutates, পুনরায় এটা বিষয়বস্তু যতবার এর তার ডান দিকে ইঙ্গিত করে ফল সঙ্গে তার বাম পরিবর্তনশীল বিষয়বস্তু প্রতিস্থাপন।

পার্লের ভেরিয়েবলগুলিতে নির্মিত বেশ কয়েকটি অদ্ভুতভাবে নামকরণ করা আছে $"যার মধ্যে একটি হ'ল যার প্রাথমিক মান একক স্থান।

redoঅপারেটর এনক্লোজিং শুরুতে জাম্প {}

প্রথমবার x=অপারেটরটি সম্পন্ন হওয়ার পরে এটি " $"থেকে " "" এর মান পরিবর্তন করে " "যা 9 টি স্পেস।

দ্বিতীয় সময় x=অপারেটর সম্পন্ন করা হয়, এটা মান পরিবর্তন $"করতে " "হয়, যা 81 শূণ্যস্থান আছে।

তৃতীয় বার, $"স্থানগুলির 729 বাইট দীর্ঘ স্ট্রিংয়ে পরিণত হয়।

আমি মনে করি আপনি কোথায় দেখতে পাচ্ছেন :)।


তুমি আমাকে এটা দ্বারা মেরেছ! এবং আপনার তিনটি বাইট সংক্ষিপ্ত।
গ্যাব্রিয়েল বেনামি

1
ক্ষুদ্রতম লুপের জন্য এই ওয়েব সাইটটি অনুসন্ধান করার বিষয় ছিল :)। এছাড়াও, আমি প্রাথমিকভাবে $_.=7আমার লুপটিতে ছিলাম তবে বুঝতে পেরেছিলাম যে x=এটি ব্যবহার করতে পারলে স্মৃতিটি খুব দ্রুত ফুরিয়ে যায় এবং তারপরে perldoc perlvarউপযুক্ত কিছু বাছাই করতে দৌড়ে যায়।
বেনগল্ডবার্গ

{$^O++;redo}^Oএকক chr(15)বাইট যখন হয় একটি বাইট ছোট । যদিও এটি অনেক ধীর গতিতে মেমরি নষ্ট করবে - এক বাইট নষ্ট করতে উইন্ডোজে 1000000000 পুনরাবৃত্তি প্রয়োজন। যে কোনও ওএসের নাম ল্যাটিন অক্ষরে শুরু হওয়াতে কাজ করবে।
ওলেগ ভি। ভোলকভ

11

সেড, 5 বাইট

Golfed

H;G;D

ব্যবহার (যে কোনও ইনপুট করবে)

sed 'H;G;D' <<<""

ব্যাখ্যা

#Append a newline to the contents of the hold space, 
#and then append the contents of the pattern space to that of the hold space.
H

#Append a newline to the contents of the pattern space, 
#and then append the contents of the hold space to that of the pattern space. 
G

#Delete text in the pattern space up to the first newline, 
#and restart cycle with the resultant pattern space.
D

স্ক্রিনশট

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

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


2
কড়া কথা বলতে গেলে এটি জিএনইউ সেড (সেমিকোলনটি স্ট্যান্ডার্ড সেড নয়) তবে একটি নতুন লাইন সেমিকোল যেমনটি হয় ঠিক তেমনই কাজ করবে।
আর ..

10

হাস্কেল, 23 19 বাইট

main=print$sum[0..]

অসীম তালিকার যোগফল মুদ্রণ করুন


মূল্যায়ন কার্যকর করার এটি একটি দুর্দান্ত উপায় এবং এটি খুব কমপ্যাক্ট। +1
2'16 এ Esolanging ফল

একটি সংকলক খুব ভাল এটি ও (1) মেমোরিতে চালাতে পারে। জিএইচসি- sumতে সংজ্ঞায়িত করা হয়েছে foldl (+) 0এবং থাঙ্ক ব্লো-আউট আটকাতে কড়াকড় করার জন্য কঠোরতা বিশ্লেষণকে কী থামাতে হবে? আপনি এটি অপটিমাইজেশন সহ সংকলিত চালিত করেছেন?
নেস

@ উইলনেস উত্তর কী হতে পারে? sumঅগ্রিম জানতে হবে না যে তালিকাটি অসীম এবং printএর যোগফলটি প্রথমে মূল্যায়ন করতে হবে। এবং হ্যাঁ, আমি এটি অপ্টিমাইজেশান সহ সংকলিত করেছি
এঙ্গস

উত্তর হবে না; তবে গণনাটি ও (1) স্পেসে চলবে। ওফস, স্ট্রাইক করুন যে, ডিফল্ট হওয়ার কারণে Integer, সংখ্যাগুলি সীমাহীন এবং বিগনাম বর্তমান ফলাফলের দ্বারা গৃহীত স্মৃতিটি প্রকৃতপক্ষে বৃদ্ধি পাবে।
নেস

1
কেবল স্পষ্ট করে বলতে গেলে, আমার অর্থ হ'ল যে sum xs = foldl (+) 0 xsকোনও অপরিহার্য লুপ যেমন চলছিল তার গণনা ধ্রুব স্ট্যাকের মধ্যে চলতে পারে । foldl' (+) 0 xsঅবশ্যই হবে। সুতরাং নির্দিষ্ট কিছু জন্য মেমরি বরাদ্দকারী একমাত্র জিনিস হ'ল বিগনাম অন্তর্বর্তীকালীন ফলাফল।
নেস

9

সি ++ (জি ++ সংকলক ব্যবহার করে), 27 23 15 বাইট

আমাকে 4 বাইট অপসারণ করতে সহায়তা করার জন্য নিওপকে ধন্যবাদ

এই সমাধানটি আসলে কোনও মেমরি ফাঁস করে না কারণ এটি স্ট্যাকের সমস্ত কিছু বরাদ্দ করে এবং ফলে স্ট্যাকের ওভারফ্লো হয়। এটি কেবল অসীম পুনরাবৃত্তিযোগ্য। প্রতিটি পুনরাবৃত্তি স্ট্যাক ওভারফ্লো না হওয়া পর্যন্ত কিছু মেমরি বরাদ্দ দেয়।

main(){main();}

বিকল্প সমাধান

এই সমাধানটি আসলে মেমরি ফাঁস করে।

main(){for(;;new int);}

Valgrind আউটপুট

রান টাইমে প্রোগ্রামটি কয়েক সেকেন্ড শেষ করার পরে এটি ভালগ্রাইন্ড আউটপুট। আপনি দেখতে পাচ্ছেন এটি অবশ্যই স্মৃতি ফাঁস করছে।

==2582== LEAK SUMMARY:
==2582==    definitely lost: 15,104,008 bytes in 3,776,002 blocks
==2582==    indirectly lost: 0 bytes in 0 blocks
==2582==      possibly lost: 16 bytes in 4 blocks
==2582==    still reachable: 4 bytes in 1 blocks
==2582==         suppressed: 0 bytes in 0 blocks

3
শিরোনাম বিভ্রান্তিকর; প্রশ্নটি বলে "এমন একটি প্রোগ্রাম লিখুন যা চিরকাল চলে এবং ক্রমাগত স্মৃতি বরাদ্দ করে।"
NobodyNada

ওহ আমি বুঝতে পারি না যে আপনি আমার পাঠানোর সময় আপনি ইতিমধ্যে একটি উত্তর জমা দিয়েছেন।
নিপ

1
@নিওপ ওয়েল আমি জানতাম না int যতক্ষণ না আমি তোমার এত ধন্যবাদ দেখেছি ততক্ষণ আপনি বাদ দিতে পারবেন !
গম উইজার্ড 3

2
না C++, কেবল এর g ++ উপভাষা: সি ++ প্রধান কল করতে নিষেধ করেছে; সি ++ এর int main...ঘোষণার প্রয়োজন । তবে সমাধানটি এখনও ঝরঝরে :-)
মার্টিন বা

1
আসলে, সি ++ কল করা নিষেধ করে main
আর ..

9

জাভা, 81 79 78 বাইট

জাভা (হটস্পট) 71 70 বাইট

আমি পোস্ট করার সময় জাভা অন্যান্য উত্তরগুলির চেয়ে কম (81, পরে by৯ বাইট):

class A{public static void main(String[]a){String x="1";for(;;)x+=x.intern();}}

@ অলিভার গ্রাগোয়ারের পরামর্শ অনুসারে, আরও একটি বাইট সংরক্ষণ করা যায়:

class A{public static void main(String[]a){for(String x="1";;)x+=x.intern();}}

x+=x.intern()লুপ ইনক্রিমেন্টের জন্য হিসাবে স্থাপন করা কোনও উপকারে আসবে না, কারণ স্টেটমেন্টের জন্য এখনও একটি সেমিকোলন প্রয়োজন।

@ETH উত্পাদনের পরামর্শ অনুসারে, কেবলমাত্র x+=xকাজগুলি ব্যবহার করে:

class A{public static void main(String[]a){String x="1";for(;;)x+=x;}}

যা @ অলিভার গ্রাওগ্রায়ার টিপ থেকেও উপকৃত হতে পারে:

class A{public static void main(String[]a){for(String x="1";;)x+=x;}}

আমার যে বিষয়ে শুধুমাত্র সন্দেহ এটি ডেটা বরাদ্দ করা নিশ্চিত করা হয় না হয় গাদা উপর , একটি দক্ষ জেভিএম সহজে বুঝতে পারেন যে xস্থানীয় ফাংশন পালাতে না। ব্যবহার করা intern()এই উদ্বেগকে এড়িয়ে চলে কারণ অভ্যন্তরীণ স্ট্রিংগুলি শেষ পর্যন্ত একটি স্ট্যাটিক ক্ষেত্রে সঞ্চিত থাকে। তবে হটস্পট সেই কোডটির OutOfMemoryErrorজন্য একটি উত্পন্ন করে , সুতরাং আমার ধারণা এটি ঠিক আছে।

আপডেট: @ অলিভার গ্রেগোয়ার আরও উল্লেখ করেছেন যে প্রচুর মেমরি উপলব্ধ হওয়ার চেয়ে x+=xকোডটি চলতে পারে । এর কারণ জাভা সূচিপত্র অ্যারেগুলিতে 32-বিট প্রকার ব্যবহার করে (এবং স্ট্রিংগুলি কেবল অ্যারে হয় )। এটি সমাধানটিকে প্রভাবিত করে না কারণ পরবর্তীকালের জন্য প্রয়োজনীয় মেমরিটি স্ট্রিংয়ের দৈর্ঘ্যে চতুর্ভুজ হয় এবং এভাবে 2 ^ 62 বরাদ্দ করা বাইটের ক্রম পর্যন্ত স্কেল করা উচিত।StringIndexOutOfBoundsExceptionOOMintcharx+=x.intern()


পিপিসিজিতে আপনাকে স্বাগতম! আমি জাভা খুব ভাল জানি না; তুমি ঠিক করলে কি হবে x+=x;?
ETH প্রোডাকশনগুলি

x+=x.intern()লুপের শেষ সেমিকোলনের পিছনে রেখে আপনি একটি সেমিকোলন শেভ করতে পারেন
এক্স 244

চমৎকার উত্তর. আমি জানতাম স্ট্রিং internআইএন দিয়ে কিছু থাকতে হবে তবে আমি অনিরাপদ থেকে বেশ খুশি এবং চূড়ান্ত করেছিলাম যে আমি তাকানো বন্ধ করেছি, হাহা। মূলত এই প্রশ্নটি "মেমরি ফাঁস" নির্দিষ্ট করেছে যার কারণে আমি কেবল একটি স্ট্রিং কনক্যাট উত্তরটি করিনি।
পোকে

যদি আপনার উত্তর জাভার নির্দিষ্ট প্রয়োগের উপর নির্ভর করে এবং সমস্ত জাভা প্রয়োগের জন্য অগত্যা পোর্টেবল না হয় তবে আপনি তথ্যটি শিরোনামে রাখতে পারেন (উদাঃ # Java (HotSpot), 71 bytes)। এইভাবে, সম্ভাব্য প্রতারণার সমাধান সম্পর্কে আপনার চিন্তা করার দরকার নেই; বাস্তবায়ন-নির্দিষ্ট প্রোগ্রামগুলি কেবল গল্ফিংয়ের ক্ষেত্রেই সাধারণ নয়, তবে প্রোগ্রামিংয়ের বিস্তৃত বিশ্বেও এবং আপনি যতক্ষণ সচেতন হন যতক্ষণ না আপনি কখনও কখনও পোর্টেবল প্রোগ্রামের চেয়ে বেশি উপযুক্ত হতে পারেন, বলুন, একটি- স্ক্রিপ্ট বন্ধ।

1
হুম ... x+=x;পুরো স্মৃতি নিঃশেষ করে না। GB৪ গিগাবাইটের সাথে আমি StringIndexOutOfBoundsExceptionএকটি ওএম না পেয়ে একটি পাই । সঙ্গে .intern()আমি এখনও করা হলে OOM kills পেতে।
অলিভিয়ের গ্রাগোয়ার


8

///, 7 বাইট

/a/aa/a

প্রতিনিয়ত প্রতিস্থাপন aসঙ্গে aa, বিজ্ঞাপন nauseum।


12
*aad naauseum
টিমোথিমহ

1
* ad nauseam=>aad naauseaam
হারুন

কি হবে //a/? এটি চিরতরে `` (কিছুই না) প্রতিস্থাপন করবে বলে মনে হয় a, তবে এটি সঠিকভাবে নির্দিষ্ট কিনা তা নিশ্চিত নয়।
সিড্রিক রেইচেনবাচ

6

পাইথন 3, 16 বাইট

i=9
while 1:i*=i

এটি সত্য থেকে আসে যে পাইথন 3 এ পূর্ণসংখ্যার আকারের সীমা নেই; পরিবর্তে, পূর্ণসংখ্যাগুলি যতটা মেমোরি গ্রহণ করতে পারে সিস্টেমটি পরিচালনা করতে পারে (এটি সম্পর্কে আমার বোঝার বিষয়ে কিছু যদি ভুল হয় তবে আমাকে সংশোধন করুন)।


শিরোনামটি বোঝায় যে স্মৃতিটি ফাঁস হওয়া উচিত। তবে এটি আসলে স্মৃতি ফাঁস করে না। লেখক সম্ভবত স্পষ্ট করা উচিত।
গম উইজার্ড

6

মরিচা, 46 বাইট

fn main(){loop{std::mem::forget(Box::new(1))}}

এই মরিচা প্রোগ্রামটি সম্পর্কে আকর্ষণীয় কিছু লক্ষ্য করুন, স্মৃতি থেকে অবধি অবধি ফাঁস বরাদ্দ ফাঁস?

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


6

টিআই -৩৩ হেক্স বিধানসভা, by বাইট

PROGRAM:M
:AsmPrgm
:EF6A4E
:C3959D
:C9

কোনও ERR:MEMORYওএস দ্বারা নিক্ষেপ না করা পর্যন্ত অনির্দিষ্টকালের জন্য অ্যাপভার তৈরি করে । সাথে চালাও Asm(prgmM)। আমি প্রতিটি জোড়া হেক্স ডিজিটকে একটি বাইট হিসাবে গণনা করি।


6

পাইথন, 8 বাইট

2**9**99

ওপি একটি প্রোগ্রাম যা টেকনিক্যালি "সব সময় প্রবেশ করুন" চালান নেই পরিভাষা অনুমোদিত, কিন্তু আরো মেমরি তুলনায় যে কোনো কম্পিউটার সম্ভবত হ্যান্ডেল পারে বরাদ্দ করেছে। এটি বেশ গুগলপ্লেক্স নয় (এটি হবে 10**10**10011 বাইট), তবে সাদামাটাভাবে, সংখ্যার লগ বেস 2

>>> 9**99.
2.9512665430652752e+94

অর্থাৎ, এটি উপস্থাপনের জন্য 10 ^ 94 বিট। ওল্ফ্রামআল্ফা যে গভীর ওয়েবের চেয়ে 10 ^ 76 বৃহত্তর হিসাবে রাখে (মনে রাখবেন মহাবিশ্বে প্রায় 10 ^ 80 পরমাণু রয়েছে )।

9 এর পরিবর্তে 2 টি কেন আপনি জিজ্ঞাসা করছেন? এটি খুব বেশি পার্থক্য করে না (9 টি ব্যবহারের ফলে বিটের সংখ্যা কেবল একটি ফ্যাক্টর দ্বারা বৃদ্ধি পাবে log2(9) = 3.2, যা ঘেরটিকেও পরিবর্তন করে না)। তবে অন্যদিকে, গণনাটি সহজ হওয়ায় প্রোগ্রামটি 2 দিয়ে আরও দ্রুত চলে runs এর অর্থ এটি 9 সংস্করণের বিপরীতে মেমরিটি তাত্ক্ষণিকভাবে পূরণ করে, যা প্রয়োজনীয় গণনার কারণে কিছুটা বেশি সময় নেয়। প্রয়োজনীয় নয়, তবে আপনি যদি এটি পরীক্ষা করতে চান (তবে আমি যা করেছি) তা চমৎকার।


5

জেলি , 3 2 বাইট

-1 বাইট ধন্যবাদ ডেনিসকে ( Wমোড়ানো)

একটি লিঙ্ক (যেমন ফাংশন বা পদ্ধতি), যা একটি সম্পূর্ণ প্রোগ্রাম হিসাবেও কাজ করে, যা তার ইনপুটটিকে তালিকায় পুনরায় আবদ্ধ করে।

ইনপুট শূন্য হিসাবে শুরু হয় তাই প্রথম পাসটি তালিকা তৈরি করে [0]
দ্বিতীয় পাসটি পরে এটি তৈরি করে [[0]]
তৃতীয় পাসটি পরে এটি করে [[[0]]]
এবং আরও ...


পূর্ববর্তী 3 বাইটার, যা খুব দ্রুত ফাঁস করে:

;Ẇß

এটির ইনপুটটির সমস্ত খালি খালি সংযুক্ত সাবলিস্টগুলি পুনরাবৃত্তভাবে পুনরুদ্ধার করে aten
[0]-> [0,[0]]-> [0,[0],[0],[[0]],[0,[0]]]এবং আরও ...


আমি যদি নিয়মগুলি সঠিকভাবে বুঝতে পারি তবে ‘ßপ্রচুর পরিমাণে হওয়া উচিত।
ডেনিস

এটি কি সত্যিই "ক্রমাগত মেমরি বরাদ্দ করে" (পাইথন ছোট্ট ইনটগুলির জন্য নিয়মিত বরাদ্দ রাখার বিষয়ে চিন্তাভাবনা করে)।
জোনাথন অ্যালান

1
যথেষ্ট ফর্সা। এখনও বিলে ফিট করা উচিত।
ডেনিস

5

জাভা 7, 106 বাইট

class A{public void finalize(){for(;;)Thread.yield();}public static void main(String[]a){for(;;)new A();}}

কম গল্ফড

class A{
    @Override
    public void finalize(){
        for(;;) {
            Thread.yield();
        }
    }
    public static void main(String[]a){
        for(;;){
            new A();
        }
    }
}

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

জাভা 7 (মজাদার বিকল্প), 216 বাইট

import sun.misc.*;class A{public static void main(String[]a)throws Exception{java.lang.reflect.Field f=Unsafe.class.getDeclaredField("theUnsafe");f.setAccessible(1>0);for(;;)((Unsafe)f.get(null)).allocateMemory(9);}}

কম গল্ফড

import sun.misc.*;
class A{
    public static void main(String[]a)throws Exception{
        java.lang.reflect.Field f=Unsafe.class.getDeclaredField("theUnsafe");
        f.setAccessible(true);
        Unsafe u = (Unsafe)f.get(null);
        for(;;) {
            u.allocateMemory(9);
        }
    }
}

এটি অন্য যে কোনও কিছুর চেয়ে মজাদার। এই উত্তরটি Unsafeসান গ্রন্থাগারটি ব্যবহার করে যা একটি অননুমোদিত অভ্যন্তরীণ API। সীমাবদ্ধ এপিআইগুলিকে অনুমতি দেওয়ার জন্য আপনার সংকলক সেটিংস পরিবর্তন করতে হবে। Unsafe.allocateMemoryবাইটের একটি নির্দিষ্ট পরিমাণ (যে কোন সীমানা পরীক্ষণ ছাড়াই) যা গাদা এবং নয় বরাদ্দ না জাভার আবর্জনা সংগ্রাহক ব্যবস্থাপনার অধীনে তাই এই মেমরি ঘুরঘুর থাকবে যতক্ষন না আপনি কল Unsafe.freeMemoryবা না হওয়া পর্যন্ত JVM মেমোরির পরিমাণ রান।


1
ভাবছিলাম যে আমি এখানে জাভা দেখতে চাই কিনা।
যাদু অক্টোপাস উরন

আবর্জনা সংগ্রহকারী পৃথক থ্রেডে চলতে থাকলে কেবল প্রথমটি কাজ করে না?
tbodt

@ টিবিডটি হ্যাঁ তবে আমি বিশ্বাস করি না যে এটি কখনও হয় না। ময়লা আবর্জনা সংগ্রহকারী নামে ডীমন থ্রেডে আবর্জনা সংগ্রহ ঘটে
পোকে

@ পোকে কি নিশ্চিত? যদি উত্তরটি এখনও ঠিক না থাকে তবে আপনার স্পষ্ট করে বলা উচিত যে আবর্জনা সংগ্রহকারী তার নিজস্ব থ্রেডে চালিত হলেই এটি কাজ করে
tbodt

@ টোবড্ট আমারও তাই মনে হয় তবে আমি নিশ্চিত নই, সততার সাথে।
অকর্মা

5

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

f x=f$x*x
main=pure$!f 9

হাস্কেলের প্রধান সমস্যা হ'ল অলসতা বজায় রাখা। mainকিছু IOপ্রকারের প্রয়োজন, তাই কেবল কল করা main=f 9কাজ করবে না। ব্যবহার main=pure(f 9)ওপরও ধরণ f 9একটি থেকে IOপ্রকার। তবে কনস্ট্রাক্টস ব্যবহার main=pure 9করে 9যেমন কিছু হয় না, তা ফিরে আসে বা প্রদর্শিত হয় না তবে কেবল বাদ দেওয়া হয়, সুতরাং যুক্তিটি মূল্যায়ন করার প্রয়োজন নেই pure, তাই বলা main=pure(f 9)হয় না এমন কোনও মেমোরি বরাদ্দ দেয় fনা। মূল্যায়ন কার্যকর করতে, $!অপারেটর উপস্থিত রয়েছে। এটি কেবল একটি আর্গুমেন্টে একটি ফাংশন প্রয়োগ করে তবে প্রথমে যুক্তিটি মূল্যায়ন করে। সুতরাং main=pure$!f 9মূল্যায়নগুলি ব্যবহার করে fঅতএব অবিচ্ছিন্নভাবে আরও মেমরি বরাদ্দ করা হয়।


সংকলিত হয়ে গেলে রানটাইম লুপটি সনাক্ত করে এবং কার্যকরকরণের বিরতি দেয়
Angs

@ আমি উইন্ডোতে জিএইচসি দিয়ে সংকলন করেছি এবং এটি আনন্দের সাথে মেমরি বরাদ্দ রাখে ... আমি এটি 3 জিবি এ থামিয়ে দিয়েছি।
লাইকনি

ব্যবহার f x=f xকাজ খুব, ঠিক আছে? (−2 বাইট)
wchargin

@ ডাব্লুচারগিন আমি এটি মনে করি না, f x=f xএকটি অসীম লুপ তৈরি করে, তবে নতুন মেমরি বরাদ্দ না করে।
লাইকনি

দারুণ, বিগনাম গণনা দ্বারা মেমরি ফুরিয়েছে! f!x=x*f(x*x)এটি অপ্টিমাইজেশন-প্রমাণ করা উচিত।
নেস

5

ডিসি, 7 বাইট

[ddx]dx

[ddx]স্ট্যাকের "ddx" ধারণকারী একটি স্ট্রিং ঠেলে দেয়। dxএর সদৃশ করে এটি কোড হিসাবে কার্যকর করে (স্ট্যাকের একটি অনুলিপি রেখে)। মৃত্যুদন্ড কার্যকর করা হলে, এটি দুটি সদৃশ করে তোলে এবং তারপরে একটি কার্যকর করে, প্রতিবার স্ট্যাকের উপরে আরও একটি অনুলিপি রাখে।


অপেক্ষা করুন, সুতরাং এটি সমান্তরালভাবে চলতে পারলে মেমরিটি তাত্পর্যপূর্ণভাবে বরাদ্দ করে?
হাইপারনিউত্রিনো

5

হাস্কেল (জিএইচসি 8.0.1 ব্যবহার করে), 11 বাইট

m@main=m>>m

অ-পুচ্ছ পুনরাবৃত্তি। mainনিজেকে আবার কল করে।


এই গাদা বা স্ট্যাক বরাদ্দ না? (আমি বিশ্বাস করতে পারি; এটি ব্যবহারে হাস্কেল সংকলকের উপর ভালভাবে নির্ভর করে))

1
@ আইস ৫৩৩: এটি নির্ভর করে। হাস্কেলের কোনও কল স্ট্যাক নেই । রান টাইম সিস্টেম আরটিএসের প্যাটার্ন মিলের জন্য একটি মেমরি অঞ্চল রয়েছে যা "স্ট্যাক" নামেও পরিচিত। এই স্ট্যাক গাদা বরাদ্দ করা হয়। সত্যিই, আমি জানি না যে এখানে কী চলছে, কারণ প্রোগ্রামটি Stack space overflow: current size 33624 bytes.33 কে দিয়ে ব্যর্থ হয় যা ওএস রিপোর্ট করছে এমন মোট মেমরির 6G এর বিপরীতে বেশ কম বলে মনে হচ্ছে।
নিমি

1
@ আইস ৫২৩: জিএসিসি ত্রুটি বার্তার মেমরির তথ্যে একটি বাগ রয়েছে বলে মনে হচ্ছে , তাই ঠিক কী ঘটে তা বলা শক্ত hard
নিমি

উবুন্টুতে জিএইচসি 10.১০.৩ এ সংকলন করা হয়েছে, অপটিমাইজেশন অক্ষম থাকা সত্ত্বেও এটি অবিচ্ছিন্ন পরিমাণ স্মৃতি গ্রহণ করে
অ্যাঙ্গস

@ অংগ: হুম, আমি ম্যাকওএসে জিএইচসি 8.0.1 ব্যবহার করি। আমি এটিকে সম্পাদনা করব
নিমিম

5

সি (লিনাক্স), 23 বাইট

main(){while(sbrk(9));}

sbrk()প্রদত্ত বাইটের সংখ্যা দ্বারা ডেটা বিভাগের শীর্ষকে বর্ধিত করে, যাতে কার্যকরভাবে প্রোগ্রামে বরাদ্দকৃত মেমরির পরিমাণ বৃদ্ধি হয় - কমপক্ষে আউটপুট VIRTক্ষেত্রে রিপোর্ট করা হিসাবে top। এটি কেবল লিনাক্সে কাজ করে - ম্যাকোস বাস্তবায়ন দৃশ্যত একটি অনুকরণ যা কেবল 4MB অবধি বরাদ্দ করতে দেয়।


সুতরাং কিছুটা সাধারণ উত্তর:

সি, 25 বাইট

main(){while(malloc(9));}

আমি এটি ম্যাকোস ক্রিয়াকলাপ মনিটরে দেখেছি। এটি প্রায় 48 গিগাবাইট পর্যন্ত গিয়েছিল, পরে শেষ পর্যন্ত প্রক্রিয়াটি একটি সিগ্কিল সিগন্যাল পেয়েছিল। এফডব্লিউআইডাব্লু আমার ম্যাকবুক প্রোতে 16 জিবি রয়েছে। ব্যবহৃত বেশিরভাগ স্মৃতি সংকুচিত হিসাবে রিপোর্ট করা হয়েছিল।

নোট করুন যে প্রশ্নটির জন্য কার্যকরভাবে প্রতিটি বরাদ্দ লিখিত হতে হবে, যা এখানে স্পষ্টভাবে ঘটে না। তবে এটি লক্ষ করা গুরুত্বপূর্ণ যে প্রতিটি malloc(9)কলের জন্য, বরাদ্দ করা হয় এমন 9 জন ব্যবহারকারীকে অনুরোধ করা বাইটগুলি নয়। বরাদ্দকৃত প্রতিটি ব্লকের জন্য একটি মলোক শিরোলেখ থাকবে যা গাদা থেকে কোথাও থেকে বরাদ্দ করা হয়েছে, যা অবশ্যই malloc()অভ্যন্তরগুলির দ্বারা লিখিত ।


Malloc সহ, আপনি সরাসরি মেমোরিতে লিখছেন না যেহেতু malloc কিছুই শুরু করে না। মেমরিটি কেবলমাত্র বরাদ্দ করা হয় কারণ ম্যালাককে মেমরি পরিচালনার জন্য কিছু অভ্যন্তরীণ স্টোরেজ প্রয়োজন। উত্তরটি সত্যিই মানসম্পন্ন নয় তবে আমার ধারণা এটি যে কোনও জায়গায়ই কার্যকর হয়।
আন্তজি

@ আন্টজি হ্যাঁ তবে আমি মনে করি এটি এখনও কার্যকর হয় যদিও ব্যবহারকারী মেমরিটি লিখিত হওয়ার আগে বরাদ্দ না দেওয়া হলেও প্রতিটি malloc()এড ব্লকের অবশ্যই তার নিজস্ব আসল বরাদ্দ স্থান থাকতে হবে। এটি ম্যাকোস এবং উবুন্টুতে কাজ করে।
ডিজিটাল ট্রমা

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

আপনি এটির মতো একটি বাইট আরও ছোট পেতে পারেন তবে main(){main(malloc(9));}ওভারফ্লো স্ট্যাক না করার জন্য এটিতে টেল কল অপটিমাইজেশন প্রয়োজন, এবং জিসিসি এটি তেমন করতে চায় না main...
আর ..

যদি আপনি কলকে (9,9) ম্যালোক (9) প্রতিস্থাপন করেন তবে 9 বাইট ব্লকের 9 টি উদাহরণের জন্য যথেষ্ট মেমরি বরাদ্দ থাকবে (সুতরাং 81 এবং 144 বাইটের মধ্যে প্রান্তিককরণের উপর নির্ভর করে However তবে আরও গুরুত্বপূর্ণ, কলোক ( ) মেমরির ব্লকটি শূন্য-পূরণ করবে, অন্তর্নিহিত ওএসকে স্টোরেজ বরাদ্দ করতে বাধ্য করবে
সিএসএম

5

পার্ল, 4 বাইট

do$0

বর্তমান দোভাষীতে নিজেই কার্যকর করে। শেষ হয়ে গেলে, এক্সিকিউশনটি কলিং স্ক্রিপ্টে ফিরে আসে, যার জন্য কল স্ট্যাক প্রয়োজন।


সুন্দর এবং সংক্ষিপ্ত, যদিও এটি আমার হিসাবে স্মৃতিটি দ্রুত নষ্ট করে না।
বেনগোলডবার্গ

4

র‌্যাকেট, 13 বাইট

(let l()(l)1)

আমার উত্তর যদি এই প্রশ্নের মধ্যে পড়ে তবে আমি পুরোপুরি নিশ্চিত নই। আমার এই উত্তরটি সরানো উচিত কিনা দয়া করে আমাকে জানান।


এটি কীভাবে কাজ করে তা ব্যাখ্যা করতে পারেন?
tbodt

1
ওহ, সুতরাং এটি lএকটি ফাংশন হিসাবে সংজ্ঞায়িত করছে যা অ-টেলেল কল পুনরাবৃত্তি করে। আমি এটা গণনা করতে চাই।
tbodt

@ টিবিড হ্যাঁ আপনি ঠিকই অর্থের উপর
উইনি

4

জাভাস্ক্রিপ্ট 22 21 17 16 15 বাইট

for(a=0;;)a=[a]

@ জোনাথন অ্যালান এর জেলি উত্তর হিসাবে অন্য তালিকায় তালিকাটি মোড়ের মাধ্যমে 4 টি বাইট সংরক্ষণ করা হয়েছে।

@ETHProductions এর জন্য 1 বাইট সংরক্ষণ করা হয়েছে

বিকল্প সমাধান 15 বাইট (শুধুমাত্র সঠিক লেজ কল দিয়ে কাজ করে)

f=a=>f([a]);f()

1
ES6 এর সাথে আপনার দ্বিতীয় উদাহরণে, আপনি কেবল কি করতে পারেন না f=_=>f();f()? 12 বাইট
কামড়ে

@ বিটেন আমি নিশ্চিত নই যদি এটি কল স্ট্যাকটি ফুটিয়ে তোলার জন্য গণনা করা হয়, তবে উপযুক্ত লেজ কল ব্যতীত এটিই যাওয়ার উপায়। টিসিও দিয়ে, আমি মনে করি না কোনও স্মৃতি ফাঁস হবে, সেখানে থাকবে?
Lmis

দুজনেই আমার জন্য কল স্ট্যাক ফুঁকছে । আমি টেল কলগুলির সাথে সত্যই পরিচিত নই যাতে আমি এটিতে কোনও মন্তব্য করতে পারি না।
কামড়

1
আহ আমি দেখছি, আপনি কীভাবে আপনার মেমরি
কামড় দিয়েছিল

1
আপনি অপসারণ করতে পারে a=0। প্রথম পুনরাবৃত্তির ফলাফল হবেa=[undefined]
ফ্লোরেন্ট

4

রুবি, 11 বাইট

loop{$*<<9}

ঠেলাঠেলি রাখে 9সম্মুখের $*, যা প্রাথমিকভাবে রুবি প্রক্রিয়া কমান্ড লাইন আর্গুমেন্ট অধিষ্ঠিত একটি অ্যারে।


4

05 এ বি 1 , 2 বাইট

[A

এটি অনলাইন চেষ্টা করুন! abcdefghijklmnopqrstuvwyxzঅনন্তকাল ধরে কেবল স্ট্যাকের দিকে ঠেলাঠেলি করবে ।

সমস্ত সম্ভাব্য 2 বাইট সমাধান:

[  # Infinite loop.
 A # Push alphabet.
 0 # Push 0.
 1 # Push 1.
 2 # Push 2.
 3 # Push 3.
 4 # Push 4.
 5 # Push 5.
 6 # Push 6.
 7 # Push 7.
 8 # Push 8.
 9 # Push 9.
 T # Push 10.
 X # Push 1.
 Y # Push 2.
 ® # Push -1.
 ¶ # Push \n.
 º # Push len(stack) > 0, so 0 once then 1 for eternity.
 ð # Push a space.
 õ # Push an empty string.
 ¾ # Push 0.
 ¯ # Push [].
 M # Push -inf.
 ) # Wrap current stack in an array.

খুব বিস্তারিত! খুশী হলাম।
টিমোথিমহ

3

পাইথন, 35 বাইট

def f(a=[]):a.append(a)
while 1:f()

a কখনই মুক্তি হয় না এবং যতক্ষণ না আপনি আঘাত করে MemoryError

আপনি পাইথন টিউটরটিতে কার্যকর হতে পারেন ।


1
আপনি কি করতে পারেন a+=a,?
সাইয়েস

কোনও ফাংশনের দরকার নেই, এখানে এটির আমার গল্ফ রয়েছে
ফ্লিপট্যাক

@ Flp.Tkc এই উত্তরটি লেখার পরে প্রশ্নটি পরিবর্তন হয়ে গেছে তবে আপনি যা করেছেন তা করতাম (+ - দু'টি চরিত্র) যদি এটি বর্তমান ফর্ম্যাটে থাকে।
Noelkd

3

টিআই-বেসিক, ৮

:Lbl A
:While 1
:Goto A

(সমস্ত 1-বাইট টোকেন এবং দুটি নতুন লাইন)

এটি অবিচ্ছিন্নভাবে মেমরি ফাঁস করে কারণ কাঠামোগত নিয়ন্ত্রণ প্রবাহ যেমন Whileপ্রত্যাশিত কোনও দ্বারা বন্ধ হয়ে যায় Endএবং স্ট্যাকের উপর কোনও কিছু চাপ দেয় (ওএস স্ট্যাক নয়, হিপ মেমরিতে পৃথক স্ট্যাক) তার ট্র্যাক রাখতে। তবে এখানে আমরা Gotoলুপটি ব্যবহার করতে যাচ্ছি (সুতরাং Endস্ট্যাক থেকে জিনিসটি সরিয়ে ফেলতে কোনও কার্যকর করা হয় না), Whileআবার দেখা যায়, জিনিসটি আবার ধাক্কা খায় ইত্যাদি SoERR:MEMORY

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