PDA

View Full Version : ساخت عدد 5 رقمی با کمک احتمالات



lord_world
دوشنبه 03 شهریور 1393, 11:06 صبح
من میخوام یه برنامه بنویسم که 5 تا عدد بهش بدیم ( مثلا 1 و 2و 5و 7و 8 ).
در مرحله دوم بیاد و به صورت اتوماتیک جایگزاری کنه ( بدون تکرار اعداد ) یعنی مثلا حالت اول می شه 12578 بعدش حالت بعدش می شه یک رو با دو جاش رو عوض کنه بشه 21578
طبق قانون احتمالات می گه 120 حالت برای این وجود داره 5*4*3*2*1 که می شه 120 .

من این 120 عدد رو می خوام بدست بیارم که بعدش روش یک سری عملیات ریاضی دیگه انجام بدم. آیا راهی هست تابعی؟
یا دستی باید بشینم متغیر بدم عدد اول x1 عدد دوم x2 عدد سوم x3 عدد چهارم x4 و عدد چنجم x5 که بعدش خودم این 120 عدد رو با کنار هم قرار دادن هر کدوم از این متغییر ها بسازم؟ و بعد عملیات ریاضیم رو روشون انجام بدم؟

arash691
دوشنبه 03 شهریور 1393, 11:19 صبح
تابعی بصورت استاندارد تو PHP وجود نداره خودت باید بنویسی تو گوگل سرچ بکن به زبون #c یا java کدش هست ...


http://www.codeproject.com/Articles/37215/Permutations-in-C-Using-Recursion

الان وقت ندارم وگرنه کدش رو به PHP برات تغییر میدادم ...

DR.HTML
دوشنبه 03 شهریور 1393, 13:55 عصر
میتونید از توابع ارایه random و shuffle استفاده کنید و مقادیر با قیبلیا چک کنید در صورتی که قبلا وجود داشته یکی دیگه بسازه

arash691
دوشنبه 03 شهریور 1393, 18:19 عصر
یک کد نمونه :


<?php
function pc_permute($items, $perms = array( )) {
if (empty($items)) {
print join(' ', $perms) . "\n";
} else {
for ($i = count($items) - 1; $i >= 0; --$i) {
$newitems = $items;
$newperms = $perms;
list($foo) = array_splice($newitems, $i, 1);
array_unshift($newperms, $foo);
pc_permute($newitems, $newperms);
echo '<br/>';
}
}
}
echo pc_permute(array(1,2,3,4));
?>


echo ''; همون echo '<br/>'; هستش ... ادیتور چاپش نمیکنه