انجمن‌های فارسی اوبونتو

لطفاً به انجمن‌ها وارد شده و یا جهت ورود ثبت‌نام نمائید

لطفاً جهت ورود نام کاربری و رمز عبورتان را وارد نمائید


ارائه ۲۴٫۱۰ اوبونتو منتشر شد 🎉

نویسنده موضوع: بدست آوردن حالت های مختلف احتمالات  (دفعات بازدید: 335 بار)

0 کاربر و 1 مهمان درحال مشاهده موضوع.

آفلاین Danoosh

  • Jr. Member
  • *
  • ارسال: 45
بدست آوردن حالت های مختلف احتمالات
« : 14 خرداد 1398، 07:11 ق‌ظ »
سلام
قصد دارم حالت های قرار گیری نقطه بین حروف یک اسم رو ببینم !
برای مثال بین جروف Danoosh, چند نقطه میتونه قرار بگیره؟   که میتونه به این صورت باشه
da.noosh
danoo.sh
dan.o.osh
d.ano.os.h  وووووو
نمیدونم توی چه برنامه ای میشه این موارد بدست آورد !  ولی فکر کنم در برنامه   لیبره آفیس  calc   بشه تنظیم ش کرد !

موفق باشید

آفلاین علی رزم دیده

  • عضو کاربران ایرانی اوبونتو
  • *
  • ارسال: 1244
  • جنسیت : پسر
  • ali76 سابق
پاسخ : بدست آوردن حالت های مختلف احتمالات
« پاسخ #1 : 14 خرداد 1398، 09:57 ق‌ظ »
با سلام
تعداد این حالت ها رو می شه به این صورت محاسبه کرد:
شما abc رو به صورت axbxc در نظر بگیرین. حالا برای متغیر x دو حالت وجود داره؛ یا مقدار اون . هست یا وجود نداره و چون هر یک از x ها ۲ حالت دارن، پس طبق اصل ضرب تعداد کل حالت ها می شه ۲×۲. (البته اگه حالت بدون هیچ نقطه رو نخواین در نظر بگیرین، می شه ۲×۲ − ۱)

در حالت کلی هم می شه گفت، تعداد این حالت ها ۲ به توان n-1 هستش که n تعداد حروف های کلمه است. (و در نتیجه n-1 می شه تعداد فاصله ی بین حروف)
یا اگه خود کلمه رو حساب نکنین می شه:
2^(n-1) - 1
برای نوشتن این حالات من نرم افزار آماده ای نمی شناسم ولی می تونین خیلی ساده برنامه اش رو بنویسین. برای مثال در پایتون :

#!/usr/bin/env python3
 
def permutation(string):
    combination = set([string])
    for i in range(1, len(string)):
        for first in permutation(string[:i]):
            for end in permutation(string[i:]):
                combination.add(first + '.' + end)
    return combination

print(permutation('Danoosh'))

که خروجی زیر رو می ده:
{'D.an.oosh', 'Dan.oo.s.h', 'D.a.noo.s.h', 'Da.no.o.sh', 'D.a.n.o.osh', 'D.a.n.o.os.h', 'Da.no.o.s.h', 'Dan.o.os.h', 'D.a.n.oos.h', 'Da.n.oo.s.h', 'Danoosh', 'D.a.n.oo.sh', 'D.an.o.o.sh', 'D.anoos.h', 'D.a.noos.h', 'Da.noos.h', 'Da.n.o.o.s.h', 'Dan.oosh', 'Dan.oo.sh', 'Dano.osh', 'Dano.o.s.h', 'Danoo.sh', 'Da.n.o.o.sh', 'D.a.no.osh', 'D.a.noo.sh', 'Dan.oos.h', 'Da.no.osh', 'D.an.oo.sh', 'D.a.n.o.o.s.h', 'D.anoo.sh', 'Dan.o.o.s.h', 'Da.noosh', 'D.anoosh', 'D.ano.osh', 'Da.noo.s.h', 'Dano.o.sh', 'D.ano.o.sh', 'D.a.no.o.sh', 'Danoos.h', 'D.anoo.s.h', 'D.an.o.o.s.h', 'D.a.no.os.h', 'D.a.no.o.s.h', 'Da.n.o.osh', 'Dano.os.h', 'D.an.oos.h', 'D.an.o.os.h', 'Da.n.oosh', 'Da.noo.sh', 'Da.n.oos.h', 'D.a.n.o.o.sh', 'Da.no.os.h', 'Dan.o.o.sh', 'D.ano.o.s.h', 'Da.n.oo.sh', 'Da.n.o.os.h', 'D.a.n.oo.s.h', 'D.an.oo.s.h', 'Danoo.s.h', 'D.ano.os.h', 'D.an.o.osh', 'Dan.o.osh', 'D.a.noosh', 'D.a.n.oosh'}
و تعداد اون رو می شه به صورت زیر چک کرد :
print(len(permutation('Danoosh')))که جواب ۶۴ هستش که با محاسبه ی ریاضی که اول انجام داده بودیم، یعنی ۲ به توان (۷−۱) هم، همخوانی داره.