Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: [BT][Đệ quy] Giả thuyết của Collatz

  1. #1
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Mặc định [BT][Đệ quy] Giả thuyết của Collatz

    Collatz đưa ra giả thuyết rằng: với một số nguyên dương X, nếu X chẵn thì ta gán X:= X div 2; nếu X lẻ thì ta gán X:= X*3+1. Sau một số hữu hạn bước, ta sẽ có X=1;
    Ví dụ với X=10;
    X=10--> 5--> 16--> 8--> 4--> 2--> 1
    Cứ cho giả thuyết Collatz là đúng đắn, vấn đề đặt ra là: Cho trước số 1 cùng với hai phép toán *2 và div 3, hãy sử dụng một cách hợp lý hai phép toán đó để biến đổi số 1 thành một giá trị nguyên dương X cho trước.
    Ví dụ: X=10 ta có 1 * 2 * 2 *2 *2 div 3 * 2=10

  2. #2
    Ngày gia nhập
    09 2007
    Bài viết
    17

    Làm lại qui trình trên theo cách của Collatz . Sau khi kết quả bằng 1 thì làm ngược lại.

  3. #3
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Yeah, cách làm của anh đúng rồi, nhưng anh có thể trình bày rõ hơn về cách cài đặt không

  4. #4
    Ngày gia nhập
    09 2007
    Bài viết
    17

    Ý HL là sao nhỉ ? Viết code hả ?

  5. #5
    Ngày gia nhập
    08 2006
    Nơi ở
    Hải Phòng
    Bài viết
    218

    Anh không nhất thiết phải viết code, chỉ cần nêu hướng cài đặt của chương trình thôi.
    Yêu cầu của bài toán là
    - nhập vào n và xuất ra một dãy phép toán để cho ra n từ số 1.
    ví dụ: nhập vào 10
    cho ra: 1 * 2 * 2 * 2 * 2 div 3 * 2

  6. #6
    Ngày gia nhập
    11 2006
    Bài viết
    633

    Mặc định [BT][Đệ quy] Giả thuyết của Collatz

    Code:
    #include <iostream>
    using namespace std;
    void Collatz(int n){
         if (n == 1) cout <<'1';
         else 
              if (n%2 == 0){
                 Collatz(n / 2);
                 cout <<"*2";
              }
              else{
                   Collatz(n * 3 + 1);
                   cout <<"/3";
              }
    }
    int main(){
        cout <<"Nhap n: "; int n; cin >>n;
        Collatz(n);
        cout <<"=" <<n <<endl;
        system("pause");
        return 0;
    }
    Thế này được ko hailoc
    Đã được chỉnh sửa lần cuối bởi huynguyen : 28-10-2007 lúc 04:05 AM.

Các đề tài tương tự

  1. Các giải thuật tìm kiếm - Lý thuyết và cài đặt trên C
    Gửi bởi PoPoPoPo trong diễn đàn Thủ thuật, Tutorials CTDL & Giải thuật
    Trả lời: 5
    Bài viết cuối: 24-02-2015, 05:21 PM
  2. Lý thuyết C++ | Giải thuật đồ thị cài đặt bằng C++
    Gửi bởi rox_rook trong diễn đàn Thủ thuật, Tutorials CTDL & Giải thuật
    Trả lời: 31
    Bài viết cuối: 30-01-2015, 10:41 PM
  3. minh co 1 số câu lý thuyết không giải được
    Gửi bởi nghiapro2589 trong diễn đàn Nhập môn lập trình Java
    Trả lời: 0
    Bài viết cuối: 10-10-2013, 01:09 AM
  4. Các giải thuật sắp xếp - Lý thuyết và cài đặt trên C
    Gửi bởi PoPoPoPo trong diễn đàn Thủ thuật, Tutorials CTDL & Giải thuật
    Trả lời: 28
    Bài viết cuối: 15-05-2013, 11:10 AM
  5. Lý thuyết đồ thị | Giải thuật DFS (Depth First Search)
    Gửi bởi vie_kainznz trong diễn đàn Thủ thuật, Tutorials CTDL & Giải thuật
    Trả lời: 1
    Bài viết cuối: 14-01-2013, 10:48 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn