MicrosoftTech.Net
Csharp Corner | MicrosoftTech.Net

Bài toán sinh dãy số Fibonaci

  • Thứ 6, 12/04/2013
Bài toán sinh dãy số Fibonaci Bài toán sinh dãy số Fibonaci
8/10 105 Bình chọn
Đến với bài viết hôm nay chúng ta sẽ tìm hiểu một dãy số có tính chất rất thú vị, thu hút sự chú ý của nhiều người trong các thập kỷ qua, từ dãy số này có thể phát triển thành những dãy số khác với tính chất tương tự. Dãy số mà tôi đang nói tới ở đây là dãy: Fibinaci. Dãy số Fibonaci là dãy số nguyên tăng dần với 2 phần tử đầu tiên có giá trị bằng 1. Các phần tử tiếp theo có giá trị bằng 2 tổng của 2 phần tử liền trước nó.

Dãy số Fibonaci
Hình bên dưới minh họa 7 phần tử đầu tiên trong dãy số Fibonaci
Bài toán sinh dãy số Fibonaci | Thuật toán trong Lập trình
Làm việc với Fibonaci
Thao tác với dãy số Fibonaci thường ta chỉ quan tâm đến 2 phương thức chính: Lấy giá trị phần tử thứ n và Xuất ra danh sách n phần tử đầu tiên.
Nhìn vào cách định nghĩa giá trị cho phần tử trong dãy Fibonaci ta thấy phần tử sau có kết quả phụ thuộc vào 2 phần tử trước. Như vậy có thể lấy giá trị của một phần tử bất kỳ bằng giá trị của 2 phần tử trước nó. Tới đây ta thấy được phương pháp đệ quy trong việc tìm giá trị của 1 phần tử. Phương thức getValues(int n) là một hàm đệ quy. Nếu giá trị n là 1 hoặc 2 thì trả về kết quả 1. Nếu khác thì gọi lại chính nó với giá trị đối số là n-1 và n-2.

Đối với phương thức xuất ra n phần tử đầu tiên trong dãy chỉ đơn giản là cho vòng for( ;; ) chạy từ 1 -> n; Tại mỗi bước lặp ta gọi lại hàm getValues().
Bài toán sinh dãy số Fibonaci | Thuật toán trong Lập trình
Kết quả
Bài toán sinh dãy số Fibonaci | Thuật toán trong Lập trình

MicrosoftTech.Net

Bài viết cùng chủ đề

  • Lập trình Windows Phone 8 cho người mới bắt đầu Lập trình Windows Phone 8 cho người mới bắt đầu
    Trong bài viết hôm nay chúng ta sẽ tìm hiểu về Lập trình Windows phone 8. Bài viết này sẽ mở đầu cho danh sách các bài viết về Lập trình windows phone 8 căn bản, đối tượng hướng đến là những người mới bắt đầu với Windows phone.
  • Chương trình Download nhạc từ mp3.zing.vn Chương trình Download nhạc từ mp3.zing.vn
    Trong bài viết này sẽ giới thiệu đến các bạn 1 chương trình nhỏ rất hữu ích, hỗ trợ cho việc tải nhạc từ trang web mp3.zing.vn một cách tiện lợi nhất. Thiết nghĩ chương trình này sẽ rất có ích cho nhiều người, đặc biệt là những ai có thói quen sưu tầm nhạc
  • Kỹ thuật xử lý Multi Thread trong Lập trình C# Kỹ thuật xử lý Multi Thread trong Lập trình C#
    Trong .NET các hàm xử lý Thread được định nghĩa bên trong namespace System.Threading; Trong một chương trình có xử lý đa luồng nghĩa là có hơn 1 luồng dữ liệu cùng được xử lý đồng thời và được...
  • Xử lý kiểu dữ liệu DateTime trong C# (P.2) Xử lý kiểu dữ liệu DateTime trong C# (P.2)
    Trong .NET framework hỗ trợ cho việc định dạng DateTime rất mạnh giúp bạn dễ dàng hơn trong việc kết xuất định dạng ngày tháng theo ý muốn. Để hiểu hơn về vấn đề này xin xem rõ ở ví dụ bên dưới
  • Xử lý kiểu dữ liệu DateTime trong C# (P.1) Xử lý kiểu dữ liệu DateTime trong C# (P.1)
    Các đối tượng Ngày, tháng trong C#. Có thể xem Datetime là một kiểu dữ liệu trong c#, thư viện hỗ trợ các method cho việc xử lý truy xuất thời gian trên máy tính như: Lấy thời gian, ngày tháng hiện tại
  • Từ khóa Var trong lập trình C# Từ khóa Var trong lập trình C#
    Từ khóa var hỗ trợ khởi tạo biến, mảng mà không cần khai báo kiểu dữ liệu, kiểu dữ liệu sẽ được xác định khi gán giá trị cho biến, lúc này chương trình sẽ tự ép kiểu cho biến. Và tất nhiên
  • Tìm hiểu về ArrayList trong C# (P.2) Tìm hiểu về ArrayList trong C# (P.2)
    Như ta biết mỗi Arraylist được tạo ra đều có sẵn một thuộc tính count để tính số lượng phần tử trong danh sách, như vậy ta có có lượng phần tử để quy định số lần lặp cho vòng lặp for(;; )...
  • Tìm hiểu về ArrayList trong C# (P.1) Tìm hiểu về ArrayList trong C# (P.1)
    Như ta thấy Arraylist là mảng động có thể thay đổi kích thước nên khi khai báo ta không xác định trước số lượng phần tử trong mảng này. Điều này đem lại một sự thuận lợi rất lớn trong việc...
  • Phương thức Reverse Array trong Lập trình Csharp Phương thức Reverse Array trong Lập trình Csharp
    Trong Lập trình csharp các dữ liệu kiểu mảng – tập hợp được hỗ trợ rất mạnh mẽ với đa dạng các các kiểu dữ liệu khác nhau. Mỗi kiểu dữ liệu được hỗ trợ gần như đầy đủ hết các...
  • Những khái niệm căn bản về Generic trong C# Những khái niệm căn bản về Generic trong C#
    Generic được đưa vào C# từ version 2.0 và common language runtime (CLR). Generic mang đến .NET framework khái niệm mới về kiểu tham số, các lớp cũng như các hàm khi định nghĩa sẽ không cần chỉ rõ tham số...

Giỏ hàng

0
Sản phẩm
0
VND

On FaceBook...

 
 
 


x
^
Hỗ trợ
x
^