Diễn đàn hỏi đáp học thuật - Download Tài Liệu Miễn Phí
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.

Diễn đàn hỏi đáp học thuật - Download Tài Liệu Miễn PhíĐăng Nhập

VỮNG TIN - TIẾP BƯỚC - THÀNH CÔNG


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

more_horiz
Tính n!


Code:

(*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 "," và dấu ";"

descriptionLập trình đệ quy với Mathematica 5.1 EmptyƯớc chung lớn nhất của 2 số nguyên dương a và b theo thuật toán Euclide

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

Code:

(*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]];


Được sửa bởi Admin ngày Wed May 25, 2011 8:16 am; sửa lần 1.

descriptionLập trình đệ quy với Mathematica 5.1 EmptyTìm phần tử Fibonacci thứ n

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

Code:

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


Được sửa bởi Admin ngày Wed May 25, 2011 8:16 am; sửa lần 1.

descriptionLập trình đệ quy với Mathematica 5.1 EmptyƯớc chung lớn nhất của 1 danh sách n phần tử

more_horiz

Code:

(*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]]]]
        ]
      ]

descriptionLập trình đệ quy với Mathematica 5.1 EmptyBài toán tháp Hà Nội

more_horiz
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).

Code:

(*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];

descriptionLập trình đệ quy với Mathematica 5.1 EmptyTìm kiếm nhị phân trên danh sách có thứ tự

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


Code:

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];   
        ];
];

descriptionLập trình đệ quy với Mathematica 5.1 EmptyTích các phần tử trong danh sách

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

Code:

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

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

more_horiz
privacy_tip Permissions in this forum:
Bạn không có quyền trả lời bài viết
power_settings_newLogin to reply