Announcement

Collapse
No announcement yet.

[C++] help me!!!!!!

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • 12520238
    replied
    Hoặc có thể dùng luôn cái thư viện algorithm luôn )
    Tham khảo: http://www.cplusplus.com/reference/a...t_permutation/
    http://www.cplusplus.com/reference/a...v_permutation/
    Thuật toán của hàm xây dựng sẵn đó là sắp xếp các chuỗi theo trình tự giống như trong từ điển. Đầu tiên nó sẽ đi từ cuối dãy lên đầu để tìm 2 phần tử kế cận nhau mà phần tử bên trái bé hơn bên phải (gọi là a[i]<a[ii]) (1). Khi đã xác định đc a[i] và a[ii] thì sẽ quay lại từ cuối dãy để tìm 1 phần tử khác có giá trị a[j]>=a[i]. Ta đổi giá trí a[j] với a[i]. Sau đó lật ngược chuỗi từ ii đến cuối.
    In ra kết quả thu đc. Gọi hàm đó 1 lần nữa để tìm chuỗi hoán vị tiếp theo. Hàm sẽ được gọi đến khi vòng lặp (1) ko tìm được kết quả nào nữa thì ta đã có được tất cả các chuỗi hoán vị.
    Last edited by 12520238; 28-11-2012, 01:38.

    Leave a comment:


  • 12520527
    replied
    Có n! cách hoán vị nếu dãy có n số phân biệt :nose:, còn nếu có lặp thì chắc sẽ tính được = cách blah blah nào đó :surrender:
    Giả sử ban đầu có dãy 1,2,3,...,n
    Ta tìm vị trí cặp i và j đầu tiên tính từ bên phải sang sao cho :
    1. i < j
    2. a[j] > a[i]
    Đổi chỗ 2 giá trị ở 2 vị trí này, sao đó đoạn từ i+1 đến n xếp lại theo thứ tự tăng dần ---> Được 1 hoán vị mới.
    Cứ tiếp tục làm như vậy cho đến khi a[1]>=a[2]>=a[3]>=..>=a[n]
    Last edited by 12520527; 28-11-2012, 00:47.

    Leave a comment:


  • 12520238
    replied
    Em nghĩ là n! cách hoán vị :-?

    Leave a comment:


  • 11520506
    started a topic [C++] help me!!!!!!

    [C++] help me!!!!!!

    Cả nhà cho mình hỏi là mình muốn nhập vào một mảng n phần tử, tính thử từ n phần tử trong mảng vừa nhập, có bao nhiêu cách hoán vị và xuất ra hết tất cả các cách hoán vị đó..ví dụ nhập vào 3 số 1, 2, 3 thì sẽ có 6 cách hoán vị, và giờ làm sao cho chương trình sẽ xuất ra hết 6 cách hoán vị đó là:
    1, 2, 3
    1, 3, 2
    2, 1, 3
    2, 3, 1
    3, 1, 2
    3, 2, 1
    Ai biết chỉ giáo cho mình với. Tks cả nhà nhiều.
    Last edited by 11520506; 27-11-2012, 22:37.

LHQC

Collapse
Working...
X