S=0
for i in range(1,n,2):
S=S+i
print(s)
a) Giá trị của S in trên màn hình là bao nhiêu?
b) Tính thời gian thực hiện của thuật toán T(n).
c) Ước lượng độ phức tạp về thời gian.
Mọi người giúp mình với , cần giải từng bước rõ ra ạ !
Quảng cáo
2 câu trả lời 147
Để giải bài toán này, chúng ta sẽ đi từng bước như sau:
a) Đầu tiên, chúng ta cần tính giá trị của biến S.
```python
n = 100
S = 0
for i in range(1, n, 2):
S = S + i
print(S)
```
Trong đó, vòng lặp `for` sẽ chạy từ 1 đến 99 với bước nhảy là 2, tức là lần lượt là 1, 3, 5, ..., 97, 99. Mỗi lần lặp, giá trị của i sẽ được cộng vào biến S. Cuối cùng, giá trị của S sẽ được in ra màn hình.
b) Để tính thời gian thực hiện của thuật toán, chúng ta cần biết số lần lặp trong vòng `for`. Trong trường hợp này, vòng lặp sẽ chạy từ 1 đến 99 với bước nhảy là 2. Vì vậy, có tổng cộng \(\frac{n}{2} = \frac{100}{2} = 50\) lần lặp.
c) Ước lượng độ phức tạp về thời gian: Do số lần lặp trong vòng `for` chỉ phụ thuộc vào biến n và không phụ thuộc vào quy mô của dữ liệu đầu vào, nên độ phức tạp của thuật toán này là \(O(n)\). Trong trường hợp này, độ phức tạp là \(O(100) = O(1)\), tức là độ phức tạp là cố định, không tăng theo quy mô dữ liệu đầu vào.
Để giải bài toán này, chúng ta sẽ đi từng bước như sau:
a) Đầu tiên, chúng ta cần tính giá trị của biến S.
pythonn=100S=0fori∈ran≥(1,n,2):S=S+ipr∫(S)𝑝𝑦𝑡ℎ𝑜𝑛𝑛=100𝑆=0𝑓or𝑖∈𝑟𝑎𝑛≥(1,𝑛,2):𝑆=𝑆+𝑖𝑝𝑟∫(𝑆)
Trong đó, vòng lặp for𝑓or sẽ chạy từ 1 đến 99 với bước nhảy là 2, tức là lần lượt là 1, 3, 5, ..., 97, 99. Mỗi lần lặp, giá trị của i sẽ được cộng vào biến S. Cuối cùng, giá trị của S sẽ được in ra màn hình.
b) Để tính thời gian thực hiện của thuật toán, chúng ta cần biết số lần lặp trong vòng for𝑓or. Trong trường hợp này, vòng lặp sẽ chạy từ 1 đến 99 với bước nhảy là 2. Vì vậy, có tổng cộng n2=1002=50𝑛2=1002=50 lần lặp.
c) Ước lượng độ phức tạp về thời gian: Do số lần lặp trong vòng for𝑓or chỉ phụ thuộc vào biến n và không phụ thuộc vào quy mô của dữ liệu đầu vào, nên độ phức tạp của thuật toán này là O(n)𝑂(𝑛). Trong trường hợp này, độ phức tạp là O(100)=O(1)𝑂(100)=𝑂(1), tức là độ phức tạp là cố định, không tăng theo quy mô dữ liệu đầu vào.
Quảng cáo
Bạn cần hỏi gì?
Câu hỏi hot cùng chủ đề
-
Đã trả lời bởi chuyên gia
86320
