এই কোডটি শেষ হওয়ার কী সুযোগ রয়েছে?


10

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

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

import random

def random_tree():
    if random.random() < 0.5:
        return 0
    return [random_tree() for _ in range(random.randint(1, 5))]

যদি random_treeসর্বদা অবসান না হয় তবে কেন, এবং এটি সমাপ্ত হওয়ার কী সুযোগ রয়েছে?

আমি এটি ব্যবহার করে এটি গণনা করার চেষ্টা করেছি , যা এর ভয়াবহ অকেজোতা দেয় উত্তর ~ বা ... ।P=1(10.5)(1(P+P2+P3+P4+P5)/5)0.6841241

সম্ভবত আরও জটিল, তবে আমার কাছে আকর্ষণীয়ও, সমাপ্তির সুযোগটি কী :P(a,b)

def random_tree(a, b):
    if random.random() < a:
        return 0
    return [random_tree(a, b) for _ in range(random.randint(1, b))]

বা সিউডো কোডে:

random_tree(a, b) is a function that either:
    - returns 0 with probability a
    - returns a list containing the results of 1 to b
      (uniformly chosen from this inclusive range) recursive calls

random_tree(a, b):
    if rand() < a # rand() is a random real on [0, 1)
        return 0
    list = []
    len = randint(1, b) # uniform random integer from 1 to b inclusive
    do len times
        append random_tree(a, b) to list
    return list

1
নীচে যোগ করা হয়েছে শীর্ষে কোডটি সহজভাবে random_tree(0.5, 5)
orlp

এটি একটি শাখা প্রক্রিয়া হিসাবে পরিচিত। উত্তরটি খুঁজতে এটি দেখুন up
যুবাল ফিল্মাস

উত্তর:


8

এটি একটি শাখা প্রক্রিয়া একটি উদাহরণ । শাখা প্রশাখার প্রক্রিয়াটি আচরণের প্রত্যাশিত সংখ্যার উপর নির্ভর করে যা আপনার ক্ষেত্রে । যখন এই সংখ্যাটি সর্বাধিক 1 হয়, প্রক্রিয়াটি 1 সম্ভাব্যতার সাথে বিলুপ্ত হয়ে যায়; যখন সংখ্যাটি 1 এর বেশি হয়, তখন এটি চিরকাল বেঁচে থাকার সম্ভাবনা থাকে; বিলুপ্তির সম্ভাবনা হ'ল আপনি যা গণনা করেছেন - আপনার 1 টির চেয়ে ছোট মূলটি নির্বাচন করতে হবে।1.25>1


এর মূলটি কেন অবৈধ? 1
orlp

সুতরাং এটি দেখা যাচ্ছে। এই মূলটি এই সত্যটি প্রকাশ করে যে আপনি যদি কখনও শুরু না করেন তবে প্রক্রিয়াটি বিলুপ্ত হয়ে যায়। আমি আপনাকে এই শাস্ত্রীয় বিষয়ে কিছু পাঠ করার পরামর্শ দিচ্ছি, যা ফেলার উদাহরণস্বরূপ চিকিত্সা করেন।
যুবাল ফিল্মাস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.