Bắt đầu ngayBắt đầu miễn phí

Dãy số nguyên

Các hàm bạn đã viết ở những bài trước thực hiện tính toán rồi trả về một số duy nhất. Bạn cũng có thể viết các hàm trả về một vector.

Cú pháp để tạo một kiểu vector là chỉ định kiểu của vector, theo sau là tên biến, rồi đến số lượng phần tử trong vector đặt trong ngoặc đơn. Ví dụ, để tạo một vector số thực tên là numbers gồm 10 phần tử, bạn có thể viết:

NumericVector numbers(10);

Bài tập này là một phần của khóa học

Tối ưu hóa mã R với Rcpp

Xem khóa học

Hướng dẫn bài tập

  • Hoàn thiện định nghĩa hàm seq_cpp() nhận hai số nguyên lohi và trả về một IntegerVector gồm các số nằm giữa chúng.
    • Đặt kiểu trả về là IntegerVector.
    • Tạo một vector số nguyên mới sequence có kích thước n.
    • Bên trong vòng lặp for, gán phần tử thứ i của sequence bằng lo cộng i.
    • Trả về sequence.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

#include 
using namespace Rcpp;

// Set the return type to IntegerVector
// [[Rcpp::export]]
___ seq_cpp(int lo, int hi) {
  int n = hi - lo + 1;
    
  // Create a new integer vector, sequence, of size n
  ___;
    
  for(int i = 0; i < n; i++) {
    // Set the ith element of sequence to lo plus i
    ___;
  }
  
  return ___;
}

/*** R
lo <- -2
hi <- 5
seq_cpp(lo, hi)
# Does it give the same answer as R's seq() function?
all.equal(seq_cpp(lo, hi), seq(lo, hi))
*/
Chỉnh sửa và Chạy Mã