محاسبه جایگشت(n)ورودی به روش برنامه نویسی پویا - هفت خط کد انجمن پرسش و پاسخ برنامه نویسی

محاسبه جایگشت(n)ورودی به روش برنامه نویسی پویا

0 امتیاز
سلام
کسی میتونه تو این مورد من رو راهنمایی کنه که از ورودیn مقدار(عددو حروف)،بگیره و تمام حالات nرو بدست بیاره. به روش برنامه نویسی پویا.
مثلا این مدلی:
1a3
-----
3a1
a31
13a
31a
a13
1a3
سوال شده دی 5, 1400  بوسیله ی nazanini (امتیاز 13)   2 4 5

1 پاسخ

0 امتیاز
برای بدست آوردن تمام حالات nرو، که شامل اعداد و حروف است، ابتدا تعدادی آرایه تعریف می کنیم که هر کدام شامل یکی از حروف و یا اعدادی هستند که می خواهیم در کنار حروف به کار بریم. برای هر موردی که در حال حاضر در آن قرار داریم، تمام حروف و اعداد موجود در آرایه را به آن اضافه می کنیم و بعد این عملیات را به صورت بازگشتی برای تمام حالات انجام می دهیم.
 
کد زیر یک مثال از این الگوریتم است:
#include <iostream>
#include <string>
using namespace std;

void n_permutations(string str, string prefix, int n) {
    if (n == 0) {
        cout << prefix << endl;
    } else {
        for (int i = 0; i < str.size(); i++) {
            n_permutations(str, prefix + str[i], n - 1);
        }
    }
}

int main() {
    string input;
    int n;
    cout << "Enter input string: ";
    cin >> input;
    cout << "Enter number of characters in output strings: ";
    cin >> n;
    n_permutations(input, "", n);
    return 0;
}

 

 

پاسخ داده شده بهمن 26, 1401 بوسیله ی nightking  
...