راهنمایی برای حدس زدن محدوده یک عدد

سلام

من یک عدد در ذهن خودم در نظر می گیریم وبه سیسیتم این عدد رو اعلام نمی کنم این عدد بین 1تا 99 هست بعد سیسیتم یک عدد رندوم بین 1تا 99 اعلام می کنه من باید بگم آیا حدس با جواب مدنظر من درسته یاخیر اگرحدس سیستم از جواب بزرگتربود می نویسم k اگر کوچکتر بود b و برابر باشهd وهربارهم بازه باید محدودتر بشه

من به کمک تابع randوwhile وif این رو نوشتم اما مشکل اینجاس هربار باید بازه با توجه به حدس سیستم محدود بشه که من تواین قسمت موندم ونمی دونم چطور بنویسمش

ممنون میشم اگه راهنمایی کنید

پاسخ ها

sokanacademy forum
کاربر سکان آکادمی 5 سال پیش

سلام

تابع rand بین min=1 و Max =99 شروع به تولید عدد تصادفی میکنه.کاری که باید بکنی اینه که وقتی k را وارد کردی min = عدد ورودی و اگرb را وارد کردی max = عدد ورودی بشه.

sokanacademy forum
کاربر سکان آکادمی 5 سال پیش

من دقیقا متوجه نشدم میشه بیشتر راهنمایی کنید این کدی که من نوشتم اما وقتی جواب 50باشه و سیستم 30رو حدس بزنه بازه میشه بین 30و99حالا اگر مجدد 60رو حدس بزنه بازه باید بشه بین30و 60 که من اینو نمی تونم درست کنم

                                                                                           

a=1
b=99
import random
javab=int
hads= random.randint(a,b)
print(hads)
while hads!= javab:
    user=input('')
    if user == 'b':
        hads=random.randint(hads,b)
        print(hads)
    if user == 'k':
        hads=random.randint(a,hads)
        print(hads)
print('d')
sokanacademy forum
کاربر سکان آکادمی 5 سال پیش

اینو امتحان کنید.

فقط من نفهمیدم منظور از javab چیه.

در کد پایین زمانی که جواب درست رو نشون داد باید d بزنید تا برنامه تموم بشه

من کد پایین تست کردم درست بود ولی اگه مشکلی داشت بخاطر اینکه تا الان پایتون کار نکردم

a=1
b=99
import random
user ='';
javab=int
hads= random.randint(a,b)

while user != 'd':
    print(hads)
    user = input ('status: ')
    if user == 'b':
        a=hads
        hads = random.randint(hads,b)
    if user == 'k':
        b=hads
        hads = random.randint(a,hads)

print('answer : ',hads)
sokanacademy forum
کاربر سکان آکادمی 5 سال پیش

سپاس فراوان از شما برای راهنمایی هاتون

sokanacademy forum
کاربر سکان آکادمی 5 سال پیش

سلام

اگر منظورتون اینه که اگر عدد نمایش داده شده برزگ تر بود شما حرف 'k' رو وارد کنید نه عدد می تونین از روش زیر استفاده کنید.

اگه اشتباه نکنم جواب این سوال مثل جستوجوی دودویی هست که هر بار بازه ی جستوجو کوچک تر میشه.

مثلا فرض کنید عدد انتخابی شما 25 است ، برنامه به شما عدد 60 نشون میده و چون عدد 60 از عدد مورد نظر شما بزرگ تر هست شما k رو وارد می کنید و تابع رندوم باید عددی بین 1 تا 60 درست کنه و دوباره عدد بهتون نمایش بده و ازتون بپرس که این عدد همونه یا نه ، فرض کنید که  برنامه دوبار عدد 10 بهتون نمایش میده و چون عدد مورد نظر شما از 10 بزرگ تره شما b رو وارد میکنید و اینجا برنامه باید عددی بین 10 تا 60 تولید کنه و این چرخه رو ادامه بده تا به عدد مورد نظر برسه.

ببخشید که بد توضیح دادم.

online-support-icon