প্রতিটি পুনরাবৃত্তি পুনরাবৃত্তি রূপান্তর করা যেতে পারে?


181

একটি reddit থ্রেড একটি আপাত আকর্ষণীয় প্রশ্ন উত্থাপন:

লেজ পুনরাবৃত্তি ফাংশন তুচ্ছভাবে পুনরাবৃত্তি ফাংশনে রূপান্তর করা যেতে পারে। অন্যগুলি, একটি স্পষ্ট স্ট্যাক ব্যবহার করে রূপান্তর করা যেতে পারে। পারি যে পুনরাবৃত্তির পুনরাবৃত্তির রূপান্তরিত হবে?

পোস্টে (কাউন্টার?) উদাহরণটি জুটি:

(define (num-ways x y)
  (case ((= x 0) 1)
        ((= y 0) 1)
        (num-ways2 x y) ))

(define (num-ways2 x y)
  (+ (num-ways (- x 1) y)
     (num-ways x (- y 1))

3
আমি দেখতে পাচ্ছি না কীভাবে এটি একটি পাল্টা উদাহরণ। স্ট্যাক কৌশল কাজ করবে। এটি সুন্দর হবে না, এবং আমি এটি লিখতে যাচ্ছি না, তবে এটি করণীয়। আকদাস এটি স্বীকার করে যা আপনার লিঙ্কটিতে উপস্থিত হয়।
ম্যাথু ফ্ল্যাশেন

আপনার (num-Way xy) ঠিক (x + y) choosex = (x + y)! / (X! Y!), যার পুনরাবৃত্তি প্রয়োজন হয় না।
শ্রীভাতসার আর


আমি বলব যে পুনরাবৃত্তি কেবল একটি সুবিধা।
e2-e4

উত্তর:


180

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

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

এই মুদ্রার উল্টোদিকে, আমরা অবশ্যই এমন একটি প্রোগ্রামিং সিস্টেমটি কল্পনা করতে পারি যে কোনও সূত্রের পুনরাবৃত্ত সংজ্ঞাটিকে পূর্বের ফলাফলগুলি স্মরণে রাখার আমন্ত্রণ হিসাবে বিবেচনা করতে পারে, এভাবে কম্পিউটারকে ঠিক কোন ধরণের পদক্ষেপ না বলার ঝামেলা ছাড়াই গতির সুবিধা দেয় পুনরাবৃত্ত সংজ্ঞা সহ একটি সূত্রের গণনা অনুসরণ করুন। ডিজকস্ট্র প্রায় অবশ্যই এ জাতীয় ব্যবস্থা কল্পনা করেছিলেন। তিনি একটি প্রোগ্রামিং ভাষার শব্দার্থবিদ্যা থেকে প্রয়োগটি পৃথক করার চেষ্টা করে দীর্ঘ সময় ব্যয় করেছিলেন। তারপরে আবার, তাঁর অ-সংজ্ঞাবাদী এবং মাল্টিপ্রসেসিং প্রোগ্রামিং ভাষা অনুশীলনকারী পেশাদার প্রোগ্রামারের উপরে একটি লীগে রয়েছে above

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

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

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


10
চার্চ-টিউরিং এখনও প্রমাণিত হয় নি?
লিরান ওরেভি

15
@ এলেলিডলেসনেস: আপনি যদি বি তে ক প্রয়োগ করতে পারেন তবে এর অর্থ হ'ল বি'র কমপক্ষে এ-এর মতো ক্ষমতা রয়েছে যদি আপনি এ-বাস্তবায়ন-বি-তে A এর কিছু বিবৃতি কার্যকর করতে না পারেন তবে এটি বাস্তবায়ন নয়। A কে B এ প্রয়োগ করা যেতে পারে এবং B কে A, পাওয়ার (A)> = শক্তি (B), এবং পাওয়ার (B)> = শক্তি (A) এ প্রয়োগ করা যেতে পারে। একমাত্র সমাধান হ'ল শক্তি (এ) = শক্তি (খ)।
টর্ডেক

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

7
এই উত্তর কীভাবে ইতিবাচক ভোট পেয়েছে? প্রথমে এটি চার্চ-টিউরিং থিসিসের সাথে টুরিংয়ের সম্পূর্ণতা মিশ্রিত করে, তারপর এটি "হ'ল উন্নত সিস্টেমের উল্লেখ করে এবং অলস অসীম পুচ্ছ পুনরাবৃত্তি (যা আপনি সি বা যে কোনও টুরিং সম্পূর্ণ ভাষায় করতে পারেন কারণ) ভুল হ্যান্ড উইভিংয়ের একটি গুচ্ছ তৈরি করে .. টুরিং সম্পূর্ণর অর্থ কী কেউ জানে?)। তারপরে একটি আশাবাদী হাত ধরেই উপসংহার, যেমন ওপ্রাহর উপর একটি প্রশ্ন ছিল এবং আপনার যা দরকার তা ইতিবাচক এবং উত্থাপিত হতে হবে? হরিডের উত্তর!
ex0du5

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

43

প্রতিটি পুনরাবৃত্তি ফাংশনের জন্য কি সর্বদা পুনরাবৃত্ত হওয়া ফর্মটি লেখা সম্ভব?

হ্যাঁ. একটি সাধারণ আনুষ্ঠানিক প্রমাণ হ'ল পুনরাবৃত্তি এবং GOTO এর মতো একটি পুনরাবৃত্ত ক্যালকুলাস উভয়ই ট্যুরিং সম্পূর্ণ। যেহেতু সমস্ত টিউরিং সম্পূর্ণ ক্যালকুলি তাদের উদ্ভাসিত শক্তির সাথে কঠোরভাবে সমতুল্য, সমস্ত পুনরাবৃত্ত ফাংশনগুলি নন-রিকার্সিভ টুরিং-সম্পূর্ণ ক্যালকুলাস দ্বারা প্রয়োগ করা যেতে পারে।

দুর্ভাগ্যক্রমে, আমি অনলাইনে GOTO এর একটি ভাল, আনুষ্ঠানিক সংজ্ঞা পেতে অক্ষম তাই এখানে একটি:

একটি গোটো প্রোগ্রাম হ'ল পি রেজিস্টার মেশিনে চালিত কমান্ডের অনুক্রম যা পি নীচের একটি:

  • HALT, যা কার্যকর করা বন্ধ করে দেয়
  • r = r + 1rকোন রেজিস্টার যেখানে
  • r = r – 1rকোন রেজিস্টার যেখানে
  • GOTO xকোথায় xএকটি লেবেল
  • IF r ≠ 0 GOTO xযেখানে rকোনও নিবন্ধক এবং xএটি একটি লেবেল
  • উপরের যে কোনও কমান্ড অনুসরণ করে একটি লেবেল।

যাইহোক, পুনরাবৃত্ত এবং অ-পুনরাবৃত্ত ফাংশনগুলির মধ্যে রূপান্তরগুলি সর্বদা তুচ্ছ নয় (কল স্ট্যাকের মাইন্ডলেস ম্যানুয়াল পুনরায় বাস্তবায়ন ব্যতীত)।

আরও তথ্যের জন্য এই উত্তরটি দেখুন


দুর্দান্ত উত্তর! তবে অনুশীলনে আমার পুনরাবৃত্ত আলগোসগুলিকে পুনরাবৃত্তকারীগুলিতে ট্যুর করতে খুব সমস্যা হয়। উদাহরণস্বরূপ, আমি এখানে উপস্থাপন মনোমরফিক টাইপারটি সম্প্রদায়.টপকোডার. com/… একটি পুনরাবৃত্ত অ্যালগরিদমে রূপান্তর করতে অক্ষম ছিলাম
নীলস

31

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


13

হ্যাঁ, প্রকৃতপক্ষে আপনি যা করতে চান তা হল পদ্ধতি কলগুলি (যা স্পষ্টভাবে স্ট্যাকের উপরে রাষ্ট্রের দিকে চাপ দেয়) স্পষ্টভাবে স্ট্যাকের দিকে ধাক্কা দেয় যাতে 'পূর্ববর্তী কলটি' কোথায় পৌঁছেছিল তা স্মরণে রাখে এবং তারপরে 'তথাকথিত পদ্ধতি' চালিত করে to পরিবর্তে.

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


9
  • পুনরাবৃত্ত ফাংশন সম্পাদন প্রবাহকে গাছ হিসাবে উপস্থাপন করা যেতে পারে।

  • একই যুক্তি একটি লুপ দ্বারা করা যেতে পারে, যা সেই গাছটিকে অতিক্রম করতে একটি ডেটা-কাঠামো ব্যবহার করে।

  • গভীরতা-প্রথম ট্রভারসাল একটি স্ট্যাক ব্যবহার করে করা যেতে পারে, একটি সারি ব্যবহার করে প্রস্থের প্রথম ট্রভারসাল করা যেতে পারে।

তাই উত্তর হবে হ্যাঁ. কেন: https://stackoverflow.com/a/531721/2128327

একটি লুপে কোনও পুনরাবৃত্তি করা যেতে পারে? হ্যাঁ কারণ

একটি টুরিং মেশিন একটি লুপ চালিয়ে যা কিছু করে তা করে:

  1. একটি নির্দেশ আনুন,
  2. এটি মূল্যায়ন,
  3. গোটো ঘ।

7

হ্যাঁ, স্পষ্টভাবে একটি স্ট্যাক ব্যবহার করা (তবে পুনরাবৃত্তি পড়ার চেয়ে অনেক বেশি আনন্দদায়ক, আইএমএইচও)।


16
আমি এটি বলব না যে এটি পড়তে সবসময়ই বেশি আনন্দদায়ক। পুনরাবৃত্তি এবং পুনরাবৃত্তি উভয়েরই তাদের স্থান রয়েছে।
ম্যাথু ফ্ল্যাশেন

6

হ্যাঁ, পুনরাবৃত্তিযোগ্য সংস্করণ লেখা সর্বদা সম্ভব। তুচ্ছ সমাধান হ'ল স্ট্যাক ডেটা স্ট্রাকচার ব্যবহার করা এবং পুনরাবৃত্তির কার্যকরকরণের অনুকরণ করা।


কোনটি যদি স্ট্যাকের উপর আপনার স্ট্যাক ডেটা কাঠামো বরাদ্দ করা হয় তবে উদ্দেশ্যটি হারাবে, বা যদি এটি গাদাতে বরাদ্দ দেওয়া হয় তবে আরও বেশি সময় নেয়, না? এটি আমার কাছে তুচ্ছ মনে হলেও অদক্ষ fficient
conradkleinespel

1
@ কনরাডক কিছু ক্ষেত্রে, কল স্ট্যাকটি নিঃশেষ করার জন্য পর্যাপ্ত পরিমাণে কোনও সমস্যার জন্য আপনার যদি গাছের পুনরাবৃত্তি অপারেশন করতে হয় তবে তা করা ব্যবহারিক জিনিস; হিপ মেমরি সাধারণত অনেক বেশি হয়।
জেমসডলিন

4

নীতিগতভাবে পুনরাবৃত্তি মুছে ফেলা এবং ডেটা স্ট্রাকচার এবং কল স্ট্যাক উভয়ের জন্য অসীম অবস্থা রয়েছে এমন ভাষায় পুনরাবৃত্তির সাথে এটি প্রতিস্থাপন করা সর্বদা সম্ভব। এটি চার্চ-টিউরিং থিসিসের একটি প্রাথমিক পরিণতি।

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


2

সমস্ত গণনীয় ফাংশন টুরিং মেশিনগুলি দ্বারা গণনা করা যায় এবং তাই পুনরাবৃত্ত সিস্টেম এবং টুরিং মেশিনগুলি (পুনরুক্তি সিস্টেম) সমতুল্য।


1

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

এটি এখন কোনও সমস্যার কম, কারণ ফ্যাশনটি অন্যান্য প্রযুক্তির দিকে চলে গেছে।


0

পুনরাবৃত্তি অপসারণ একটি জটিল সমস্যা এবং ভাল সংজ্ঞায়িত পরিস্থিতিতে এটি সম্ভাব্য।

নীচের মামলাগুলি সহজগুলির মধ্যে রয়েছে:


0

সুস্পষ্ট স্ট্যাক থেকে সংযোজন, পুনরাবৃত্তিকে পুনরাবৃত্তিতে রূপান্তর করার জন্য আরেকটি প্যাটার্ন হ'ল ট্রামপোলিন ব্যবহার।

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

এই পদ্ধতির পারস্পরিক পুনরাবৃত্তি ফাংশন জন্য কাজ করে, কিন্তু আমি ভয় করি যে এটি কেবল লেজ-কলগুলির জন্যই কাজ করে।

http://en.wikipedia.org/wiki/Trampoline_(computers)


0

আমি হ্যাঁ বলব - একটি ফাংশন কল গোটো এবং স্ট্যাক অপারেশন (মোটামুটি কথা বলা) ছাড়া কিছুই নয়। আপনাকে যা করতে হবে তা হ'ল ফাংশন চাওয়ার সময় যে স্ট্যাকটি তৈরি হয়েছিল তা নকল করা এবং গোটো হিসাবে অনুরূপ কিছু করা (আপনি ভাষাগুলির সাথে গোটোস নকল করতে পারেন যা স্পষ্টভাবে এই কীওয়ার্ডটিও নেই)।


1
আমি মনে করি যে ওপি কোনও প্রমাণ বা অন্য কিছু সন্ধান করছে
টিম

0

উইকিপিডিয়ায় নিম্নলিখিত এন্ট্রিগুলিতে একবার দেখুন, আপনি আপনার প্রশ্নের সম্পূর্ণ উত্তর খুঁজে পেতে এগুলিকে একটি প্রাথমিক পয়েন্ট হিসাবে ব্যবহার করতে পারেন।

অনুচ্ছেদটি অনুসরণ করে যা আপনাকে কোথায় শুরু করতে হবে তার কিছু ইঙ্গিত দিতে পারে:

পুনরাবৃত্ত সম্পর্কের সমাধান করা অর্থ একটি বদ্ধ-ফর্ম সমাধান প্রাপ্তি : এন এর পুনরাবৃত্ত ক্রিয়াকলাপ।

এই এন্ট্রিটির শেষ অনুচ্ছেদটি দেখুন ।


0

যে কোনও পুনরাবৃত্তির অ্যালগরিদমকে অ-পুনরাবৃত্ত হওয়াতে রূপান্তর করা সম্ভব তবে প্রায়শই যুক্তি আরও জটিল হয় এবং এর জন্য স্ট্যাকের ব্যবহার প্রয়োজন requires আসলে, পুনরাবৃত্তি নিজেই একটি স্ট্যাক ব্যবহার করে: ফাংশন স্ট্যাক।

আরও বিশদ: https://developer.mozilla.org/en-US/docs/Web/ জাভা স্ক্রিপ্ট / গুয়াইড / ফাংশন


-1

তাসজেগো, পুনরাবৃত্তির অর্থ হল যে কোনও ফাংশন আপনাকে পছন্দ করবে বা না পছন্দ করে তা কল করবে। লোকেরা যখন পুনরাবৃত্তি ছাড়াই জিনিসগুলি করা যায় কিনা তা নিয়ে কথা বলার সময় তাদের অর্থ এটি এবং আপনি "না, এটি সত্য নয়, কারণ আমি বৈধ বিবৃতি হিসাবে" পুনরাবৃত্তি সংজ্ঞাটির সাথে একমত নই "।

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

যাইহোক, এখানে টুরিং-সম্পূর্ণ ভাষা রয়েছে যা কেবল লুপিংয়ের মাধ্যম হিসাবে পুনরাবৃত্তি (যেমন এসএমএল) প্রয়োগ করে। এখানে টিউরিং-সম্পূর্ণ ভাষা রয়েছে যা কেবলমাত্র লুপিংয়ের মাধ্যম হিসাবে পুনরাবৃত্তি প্রয়োগ করে (যেমন ফোরট্রান চতুর্থ)। চার্চ-টিউরিং থিসিস প্রমাণ করেছে যে কেবলমাত্র পুনরাবৃত্তির ভাষাগুলিতেই যে কোনও কিছু সম্ভব হয়েছে তা পুনর্বিবেচনামূলক ভাষায় করা যেতে পারে এবং এই উভয় পক্ষেই টুরিং-পূর্ণতার সম্পত্তি থাকার কারণে এই দ্বি-দ্বন্দ্ব ঘটতে পারে।


-3

এখানে একটি পুনরাবৃত্তি অ্যালগরিদম:

def howmany(x,y)
  a = {}
  for n in (0..x+y)
    for m in (0..n)
      a[[m,n-m]] = if m==0 or n-m==0 then 1 else a[[m-1,n-m]] + a[[m,n-m-1]] end
    end
  end
  return a[[x,y]]
end
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.