انجمنهای فارسی اوبونتو
کمک و پشتیبانی => انجمن عمومی => نویسنده: Danoosh در 14 خرداد 1398، 07:11 قظ
-
سلام
قصد دارم حالت های قرار گیری نقطه بین حروف یک اسم رو ببینم !
برای مثال بین جروف Danoosh, چند نقطه میتونه قرار بگیره؟ که میتونه به این صورت باشه
da.noosh
danoo.sh
dan.o.osh
d.ano.os.h وووووو
نمیدونم توی چه برنامه ای میشه این موارد بدست آورد ! ولی فکر کنم در برنامه لیبره آفیس calc بشه تنظیم ش کرد !
موفق باشید
-
با سلام
تعداد این حالت ها رو می شه به این صورت محاسبه کرد:
شما 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')))
که جواب ۶۴ هستش که با محاسبه ی ریاضی که اول انجام داده بودیم، یعنی ۲ به توان (۷−۱) هم، همخوانی داره.