+ Trả lời chủ đề
Hiện kết quả từ 1 tới 7 của 7

Chủ đề: Lập trình đệ quy với Mathematica 5.1

  1. #1
    Status : ThanhTuan_Alpha đang ẩn
    Tham gia ngày : Aug 2011
    Bài gửi : 203

    Lập trình đệ quy với Mathematica 5.1

    Tính n!


    Mã:
    (*Viet ham xu ly trong truong hop n < 0*)
    GiaiThua[n_] := If[n < 0, Return[-GiaiThua[-n]], If[n == 1 || n == 0,
         Return[1], Return[n*GiaiThua[n - 1]]]];
    (*Goi ham va tham so*)
    n = Input["Nhap vao gia tri n"];
    Print[n, "!=", GiaiThua[n]];
    Hãy chú ý với từng dấu &quot;,&quot; và dấu &quot;;&quot;

  2. #2
    Status : ThanhTuan_Alpha đang ẩn
    Tham gia ngày : Aug 2011
    Bài gửi : 203

    Ước chung lớn nhất của 2 số nguyên dương a và b theo thuật toán Euclide

    Ước chung lớn nhất của 2 số nguyên dương a và b theo thuật toán Euclide
    Mã:
    (*Uoc chung lon nhat cua 2 so nguyen a va b*)
    UCLN[a_, b_] := If[a > b, UCLN[a - b, b], If[a < b, UCLN[a, b - 
          a], Return[a]]];
    a = Input["Nhap a"];
    b = Input["Nhap b"];
    Print["Uoc chung lon nhat cua a = ", a, " va b = ", b, " la ", UCLN[a, b]];

  3. #3
    Status : ThanhTuan_Alpha đang ẩn
    Tham gia ngày : Aug 2011
    Bài gửi : 203

    Tìm phần tử Fibonacci thứ n

    Tìm phần tử Fibonacci thứ n

    Mã:
    Fibo[n_] := If[n == 1 || n == 2, Return[1], Return[Fibo[n - 1] + Fibo[n - 2]]]

  4. #4
    Status : ThanhTuan_Alpha đang ẩn
    Tham gia ngày : Aug 2011
    Bài gửi : 203

    Ước chung lớn nhất của 1 danh sách n phần tử

    Mã:
    (*Uoc chung lon nhat cua 2 so a va b*)
      UCLN[a_, b_] := If[a == b, Return[a], If[a > b, Return[UCLN[a - b, b]], 
        Return[UCLN[a, b - a]]]]
      (*Uoc chung lon nhat cua n so*)
      UCLNList[L_, n_] := If[n == 1, Return[L[[1]]], If[
            n == 2, Return[
              UCLN[L[[1]], L[[2]]]], Return[UCLN[UCLNList[L, n - 1], L[[n]]]]
            ]
          ]

  5. #5
    Status : ThanhTuan_Alpha đang ẩn
    Tham gia ngày : Aug 2011
    Bài gửi : 203

    Bài toán tháp Hà Nội

    Chuyển n đĩa từ cột 1 sang cột 2 lấy cột 3 làm trung gian. Thứ tự các đĩa được sắp xếp từ nhỏ đến lớn (cái lớn nắm phía dưới).
    Mã:
    (*Bai toan thap Ha Noi*)
    Move[n_, a_, b_] := If[n == 1
          ,
          Print[a, "-->", b]
          ,
          Move[n - 1, a, 6 - a - b];
          Move[1, a, b];
          Move[n - 1, 6 - a - b, b];
    ];
    n = Input[];
    Print["Chuyen ", n, " dia tu  a sang b"];
    Move[n, 1, 2];

  6. #6
    Status : ThanhTuan_Alpha đang ẩn
    Tham gia ngày : Aug 2011
    Bài gửi : 203

    Tìm kiếm nhị phân trên danh sách có thứ tự

    Tìm kiếm nhị phân trên danh sách có thứ tự giảm


    Mã:
    BinarySearch[L_, x_, i_, j_] := Module[{Mid},
          	Mid = Ceiling[(i + j)/2];
          	If[i ≤ j,
            	If[L[[Mid]] == x,
                		Return[True];
                		,
                		If[L[[Mid]] < x,
                    		Return[BinarySearch[L, x, i, Mid - 1]];
                    		,
                    		Return[BinarySearch[L, x, Mid + 1, j]];
                    	];
                	];
            	,
            	Return[False];	
            ];
    ];

  7. #7
    Status : ThanhTuan_Alpha đang ẩn
    Tham gia ngày : Aug 2011
    Bài gửi : 203

    Tích các phần tử trong danh sách

    Tích các phần tử trong danh sách

    Mã:
    ProductList[L_, n_] := If[n == 1,
          				Return[L[[1]]]
          				,
          				Return[L[[n]] ProductList[L, n - 1]];
          			];

+ Trả lời chủ đề

Quyền viết bài

  • Bạn không thể gửi chủ đề mới
  • Bạn không thể gửi trả lời
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
Trang Chủ Việc Làm Gia Sư Gia sư