update max015,

This commit is contained in:
louiscklaw
2025-02-01 02:04:08 +08:00
commit 7099a8ed36
331 changed files with 43217 additions and 0 deletions

50
T11/1.csv Normal file
View File

@@ -0,0 +1,50 @@
0,0
1,1
2,2
3,7
4,23
5,60
6,131
7,252
8,442
9,723
10,1120
11,1661
12,2377
13,3302
14,4473
15,5930
16,7716
17,9877
18,12462
19,15523
20,19115
21,23296
22,28127
23,33672
24,39998
25,47175
26,55276
27,64377
28,74557
29,85898
30,98485
31,112406
32,127752
33,144617
34,163098
35,183295
36,205311
37,229252
38,255227
39,283348
40,313730
41,346491
42,381752
43,419637
44,460273
45,503790
46,550321
47,600002
48,652972
49,709373
1 0 0
2 1 1
3 2 2
4 3 7
5 4 23
6 5 60
7 6 131
8 7 252
9 8 442
10 9 723
11 10 1120
12 11 1661
13 12 2377
14 13 3302
15 14 4473
16 15 5930
17 16 7716
18 17 9877
19 18 12462
20 19 15523
21 20 19115
22 21 23296
23 22 28127
24 23 33672
25 24 39998
26 25 47175
27 26 55276
28 27 64377
29 28 74557
30 29 85898
31 30 98485
32 31 112406
33 32 127752
34 33 144617
35 34 163098
36 35 183295
37 36 205311
38 37 229252
39 38 255227
40 39 283348
41 40 313730
42 41 346491
43 42 381752
44 43 419637
45 44 460273
46 45 503790
47 46 550321
48 47 600002
49 48 652972
50 49 709373

BIN
T11/6084449498890878777.jpg (Stored with Git LFS) Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

10
T11/P03.py Normal file
View File

@@ -0,0 +1,10 @@
def my_function(n):
if n == 1:
return
for i in range(1,n+1):
for j in range(1, n+1):
print("*", end="")
break
my_function(5)

10
T11/P04.py Normal file
View File

@@ -0,0 +1,10 @@
def func1(n):
i = 1
s = 1
while s <= n:
i+=1
s+=i
print("*", end="")
n = 10
func1(n)

27
T11/P05 copy.py Normal file
View File

@@ -0,0 +1,27 @@
def myFunction(n):
if j % i == 0: # Check if j is divisible by i
for k in range(j):
s_i_loop += 1
print("*", end="") # Print '*' to the console without newline
print()
# Example usage
print("n=0")
myFunction(0)
print("n=1")
myFunction(1)
print("n=2")
myFunction(2)
print("n=3")
myFunction(3)
print("n=4")
myFunction(4)
print("n=5")
myFunction(5)

10
T11/P05.py Normal file
View File

@@ -0,0 +1,10 @@
def myFunction(n):
for i in range(n): # O(n)
for j in range(i, i * i): # O(i^2 - i) => O(n^2 - n) => O(n^2)
if j % i == 0: # O(1) # Check if j is divisible by i
for k in range(j): # O(n!)
print("*", end="") # Print '*' to the console without newline
print()
# Example usage
myFunction(5)

BIN
T11/ans.zip (Stored with Git LFS) Normal file

Binary file not shown.

BIN
T11/ans/1.xlsx Normal file

Binary file not shown.

BIN
T11/ans/P01_a.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
T11/ans/P01_b.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
T11/ans/P01_c.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
T11/ans/P01_d.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
T11/ans/P01_e.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
T11/ans/P02_draw.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
T11/ans/P02_order.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
T11/ans/ans.docx Normal file

Binary file not shown.

48
T11/ans/main.md Normal file
View File

@@ -0,0 +1,48 @@
## P01:
a. true
b. true
c. true
d. false
e. false
## P02:
__growth rates: 1 slowest, 6 fastest__
![alt text](P02_order.png)
## P03:
![alt text](o_n_square.png) + ![alt text](o_1.png)
=> ![alt text](o_n_square.png)
## P04:
![alt text](o_log_n.png)
## P05:
```python
def myFunction(n):
for i in range(n): # O(n)
for j in range(i, i * i): # O(i^2 - i) => O(n^2 - n) => O(n^2)
if j % i == 0: # O(1) # Check if j is divisible by i
for k in range(j): # O(n!)
print("*", end="") # Print '*' to the console without newline
print()
# Example usage
myFunction(5)
```
steps behind analysis
n = 5 => 5+10+15+20 => 5(1+2+3+4) ~ 5! # actual 5! - 5
n = 4 => 4+8+16 => 4(1+2+3) ~ 4! # actual 4! - 4
n = 3 => 3 => 3(1) ~ 3! # actual 3! - 3
so worse case scenario is O(n + n^2 + 1 + n!)
=> O(n!)

BIN
T11/ans/o_1.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
T11/ans/o_log_n.png (Stored with Git LFS) Normal file

Binary file not shown.

BIN
T11/ans/o_n_square.png (Stored with Git LFS) Normal file

Binary file not shown.

9
T11/gitUpdate.sh Executable file
View File

@@ -0,0 +1,9 @@
#!/usr/bin/env bash
set -ex
git add .
git commit -m"update max015,"
git push

36
T11/gpt_answer/main.md Normal file
View File

@@ -0,0 +1,36 @@
Let's break down the code step by step:
1. The function `my_function` takes an integer `n` as input.
2. The function checks if `n` is equal to 1. If it is, the function returns without doing anything.
3. If `n` is not 1, the function uses two nested for loops:
- The outer loop iterates from 1 to `n` (inclusive).
- The inner loop iterates from 1 to `n` (inclusive).
4. Inside the inner loop, it prints a single asterisk (`*`) followed by a newline (`\n`).
Now, let's analyze the time complexity using Big-O notation:
- The outer loop runs `n` times, and for each iteration, the inner loop runs `n` times.
- Therefore, the total number of iterations is `n * n`, which simplifies to `n^2`.
Since the number of operations (printing asterisks) is proportional to `n^2`, the time complexity is O(n^2).
Here's the corrected code with the additional newline character (`\n`) at the end of the inner loop:
```python
def my_function(n):
if n == 1:
return
for i in range(1,n+1):
for j in range(1, n+1):
print("*", end="")
print() # Add a newline character
my_function(5)
```
When you run this code, it will print a 5x5 grid of asterisks, each on a new line.

13
T11/gpt_answer/temp.md Normal file
View File

@@ -0,0 +1,13 @@
To determine if the statement is true using Big-O notation, we need to analyze the given equation and understand what it represents.
The equation provided is:
n log n + 4n = O(n)
This equation suggests a relationship between the growth rates of two functions: n log n and n. The O-notation is used to describe the upper bound of an algorithm's complexity, which helps in comparing the efficiency of different algorithms.
In Big-O notation, we are interested in the highest-order term that dominates the expression as n approaches infinity. For the equation n log n + 4n, the term with the highest order (dominating term) is n log n because it grows faster than 4n as n increases.
Therefore, we can say that the given equation n log n + 4n is indeed true in terms of Big-O notation, as the dominant term is n log n, and the constant multiple (4) does not affect the overall complexity class, which remains O(n log n).
**Answer: True**

9
T11/gpt_answer/temp1.md Normal file
View File

@@ -0,0 +1,9 @@
To determine the complexity of the given expression, we need to analyze the number of operations it performs.
The expression is: $5n + 10n^2 = O(n^2)$
In this expression, there are two terms: $5n$ and $10n^2$. The term with the highest power of $n$ dominates the complexity, which in this case is $10n^2$.
Since the highest power of $n$ is $n^2$, the complexity of the expression is $O(n^2)$.
Therefore, the statement is **true**.

80
T11/gpt_answer/temp2.md Normal file
View File

@@ -0,0 +1,80 @@
In the context of NP-analysis, "Byzantine" refers to a specific type of problem related to distributed computing and fault tolerance. However, there's another concept called "Byzantine Fault Tolerance" that's relevant to NP-analysis.
**Byzantine Fault Tolerance in NP-analysis**
In NP-analysis, Byzantine Fault Tolerance refers to the ability of a distributed algorithm to function correctly even when some nodes in the network behave arbitrarily or maliciously, i.e., like "traitors." This concept is inspired by the Byzantine Generals' Problem, which I mentioned earlier.
In the context of NP-analysis, researchers study the computational complexity of solving problems in the presence of Byzantine faults. Specifically, they investigate how the presence of faulty or malicious nodes affects the difficulty of solving certain problems.
One notable result in this area is the concept of "Byzantine Agreement" in the context of NP-completeness. Researchers have shown that certain problems, such as the Byzantine Agreement problem itself, are NP-hard even in the presence of a single faulty node. This means that, in the worst-case scenario, solving these problems requires exponential time, even with a small number of faulty nodes.
Some examples of NP-complete problems related to Byzantine Fault Tolerance include:
1. **Byzantine Agreement**: Given a set of nodes, some of which may be faulty, decide on a common value.
2. **Distributed Consensus**: Reach agreement among a set of nodes on a single value, despite the presence of faulty nodes.
3. **Fault-Tolerant Computation**: Compute a function in a distributed setting, tolerating a certain number of faulty nodes.
Here is a list of NP-complete problems. Can you tell me what is the relationship between Byzantine and NP-complete problems?
```
1. Traveling Salesman Problem
2. Knapsack Problem
3. Scheduling Problem
4. Vertex Cover Problem
5. Hamiltonian Cycle Problem
6. Clique Problem
7. Set Cover Problem
8. Steiner Tree Problem
9. Feedback Arc Set Problem
10. Graph Coloring Problem
11. Shortest Superstring Problem
12. Maximum Flow Problem
13. Minimum Spanning Tree Problem
14. Longest Path Problem
15. Byzantine Generals' Problem
```
I see that the Byzantine Generals' Problem is listed as #15. What does it mean?
It means that the Byzantine Generals' Problem is indeed an NP-complete problem. In fact, it's one of the most famous examples of an NP-complete problem in the field of distributed computing.
The relationship between Byzantine and NP-complete problems is that the Byzantine Generals' Problem is a specific example of an NP-complete problem. NP-complete problems are a class of problems that are considered to be computationally intractable, meaning that their running time increases exponentially with the size of the input.
The Byzantine Generals' Problem is NP-complete because it's a problem that can be solved efficiently (in polynomial time) using a deterministic Turing machine, unless P=NP. This means that, in the worst-case scenario, solving the Byzantine Generals' Problem requires exponential time.
In summary, the Byzantine Generals' Problem is an NP-complete problem, which means it's a member of a class of problems that are computationally challenging to solve exactly in a reasonable amount of time.
Here is a code snippet that demonstrates the relationship between Byzantine and NP-complete problems:
```python
import random
def is_np_complete(problem):
# Simulate the problem-solving process
# For simplicity, let's assume we're solving the Byzantine Generals' Problem
num_generals = 100
num_traitors = 20
# Simulate the communication process
def simulate_communication():
#... simulation code...
# Check if the solution is correct
def check_solution(solution):
#... checking code...
# Try to solve the problem
for attempt in range(10000): # Exponential time!
solution = simulate_communication()
if check_solution(solution):
return True
return False
# Test the function
problem = "Byzantine Generals' Problem"
result = is_np_complete(problem="Byzantine Generals")
print(f"Is Byzantine Generals' Problem NP-complete? {problem}")
```
Note that this code snippet is highly simplified and not intended to be taken literally. Its purpose is to illustrate the idea that solving NP-complete problems, including the Byzantine Generals' Problem, often requires exponential time.

0
T11/notes.md Normal file
View File