Sơ đồ tính căn bậc hai của một số trong python

Biểu đồ luồng Raptor để tìm bình phương của một số nguyên bằng Raptor. RAPTOR là một môi trường lập trình dựa trên sơ đồ, được thiết kế để giúp sinh viên hình dung thuật toán của họ. Bạn có thể tải phần mềm này miễn phí

Sơ đồ tính căn bậc hai của một số trong python


Cách tiếp cận ngây thơ. Để tìm sàn của căn bậc hai, hãy thử với các số tự nhiên bắt đầu từ 1. Tiếp tục tăng số cho đến khi bình phương của số đó lớn hơn số đã cho

Thực hiện theo các bước dưới đây để thực hiện ý tưởng trên

  1. Tạo một biến (bộ đếm) i và xử lý một số trường hợp cơ bản, (i. e khi số đã cho là 0 hoặc 1)
  2. Chạy một vòng lặp cho đến khi i*i <= n, trong đó n là số đã cho. Tăng i lên 1
  3. Sàn của căn bậc hai của số là i – 1

Dưới đây là việc thực hiện các phương pháp trên

C++




3
61

3
62

3
63
3
64
3
65

 

3
66

3
67
3
0____467
3
2

3
3

3
4
3
5

3
4
3
7
3
8

3
9
3
0
3
1

 

3
4
3
3

3
4
3
5

3
4
3
67
3
8

3
4
3
610
3
611

_______09____4613

_______09____4615

3
4
3
617

3
4
3
0
3
620

3
617

 

3
622

3
67
3
624

3
3

3
4
3
67
3
628

3
4
3
630

3
4
3
0
3
633

3
617

C




3
635

 

3
66

3
67
3
0____467
3
2

3
3

3
4
3
5

3
4
3
7
3
8

3
9
3
0
3
1

 

3
4
3
3

3
4
3
5

3
4
3
67
3
8

3
4
3
610
3
611

_______09____4613

_______09____4615

3
4
3
617

3
4
3
0
3
620

3
617

 

3
622

3
67
3
624

3
3

3
4
3
67
3
628

3
4
3
678
3
679
3
00
3
01

3
4
3
0
3
633

3
617

3
06

Java




3
07

 

3
08
3
09

 

3
4
3
66

3
4
3
13
3
67
3
0
3
67
3
2

3
4
3
3

3
9
3
5

3
9
3
7
3
24
3
25
3
26
3
27
3
28

3
29
3
0
3
1

 

3
9
3
3

3
9
3
5

3
9
3
67
3
38
3
27
3
40
3
27
3
42

 

3
9
3
610
3
611

_______029____4613

_______029____4615

_______09____4617

3
9
3
0
3
54
3
27
3
42

3
4
3
617

 

_______04____4622

3
4
3
62
3
13
3
64
3
65

3
4
3
3

3
9
3
67
3
70
3
71
3
42

3
9
3
74

3
4
3
617

3
617

 

3
78

Python3




3
79

 

3
80

 

 

3
81
3
82

 

3
4
3
84

3
4
3
7
3
87
3
88
3
88
3
25
3
91
3
92
3
88
3
88
3
27
3
96

3
9
3
0
3
92

 

3
4
3
01

3
4
3
03

3
4
3
05
3
88
3
27

3
4____909____088
3
27

3
4
3
610
3
14
3
88
3
16

 

3
9
3
05
3
19
3
88
3
27

3
9
3
09
3
88
3
05
3
26
3
05

 

3
4
3
0
3
05______931
3
27

 

 

3
33

3
92____088
3
71

3
37
3
38

 

3
39

C#




3
40

3
41

3
63
3
43

 

3
08
3
09

3
4
3
47

3
4
3
49

3
4
3
13
3
67
3
0
3
67
3
2

3
4
3
3

3
9
3
5

3
9
3
7
3
8

3
29
3
0
3
1

 

3
9
3
67

_______09____969

3
9
3
71

3
9
3
67
3
8

 

3
9
3
610
3
611

_______029____4613

_______029____4615

_______09____4617

3
9
3
0
3
620

3
4
3
617

 

_______04____990

3
4
3
13
3
62
3
64
3
95

3
4
3
3

3
9
3
67
3
628

3
9
3
6102

3
4
3
617

3
617

 

3
6106

PHP




3
6107

3
6108

 

3
66

3
6110
3
0____46112
3
28

3
3

3
4
3
5

3
4
3
7 ________ 4679
3
6112 ________ 46121
3
6112 ________ 46123

3
4
3
0
3
6112
3
42

 

3
4
3
67

3
4
3
69

3
4
3
71

3
4
3
6135
3
6136

3
4____46138
3
6136

3
4
3
610
3
679
3
6138
3
6144
3
6112
3
28

3
4
3
3

3
9____46135______46151

3
9
3
6138
3
88
3
6135
3
26
3
6135
3
42

3
4
3
617

3
4
3
0
3
6135
3
6164

3
617

 

3
90

________ 46112 ________ 46168

3
6169
3
0____46112
3
6172
3
6173
3
42

 

3
6106

3
6176

Javascript




3
6177

 

3
6178

 

3
66

3
6110
3
6181

3
3

3
4

3
4
3
5

3
4
3
7
3
8

3
9
3
0
3
1

 

3
4
3
67

3
4
3
69

3
4
3
71

_______04____46199

3
4____46201

3
4

3
4
3
610
3
6205

3
4
3
3

_______09____4613

_______09____4615

3
4
3
617

3
4
3
0
3
620

3
617

 

3
90

3
6219

3
6220

 

3
6221

 

3
6222

Đầu ra

3

Phân tích độ phức tạp.  

  • Thời gian phức tạp. O(√X). Chỉ cần một lần duyệt giải pháp, vì vậy độ phức tạp thời gian là O(√X)
  • Không gian phụ trợ. Ô(1)

Cảm ơn, Fattepur Mahesh đã đề xuất giải pháp này.  

Căn bậc hai một số nguyên sử dụng tìm kiếm nhị phân

Ý tưởng là tìm số nguyên i lớn nhất có bình phương nhỏ hơn hoặc bằng số đã cho. Các giá trị của i * i tăng dần một cách đơn điệu, vì vậy vấn đề có thể được giải quyết bằng cách sử dụng tìm kiếm nhị phân

Dưới đây là cách triển khai ý tưởng trên.  

  1. Các trường hợp cơ bản cho vấn đề đã cho là khi số đã cho là 0 hoặc 1, sau đó trả về X;
  2. Tạo một số biến, để lưu trữ giới hạn dưới giả sử l = 0 và cho giới hạn trên r = X/2 (i. e, Sàn của căn bậc hai của x không thể lớn hơn x/2 khi x > 1)
  3. Chạy một vòng cho đến khi l <= r, không gian tìm kiếm biến mất
  4. Kiểm tra xem bình phương của mid (mid = (l + r)/2 ) có nhỏ hơn hoặc bằng X không, Nếu có thì tìm kiếm giá trị lớn hơn trong nửa sau của không gian tìm kiếm, i. e l = mid + 1, cập nhật và = mid
  5. Ngược lại, nếu bình phương của mid lớn hơn X thì hãy tìm giá trị nhỏ hơn trong nửa đầu của không gian tìm kiếm, i. e r = giữa – 1
  6. Cuối cùng, Trả lại ans

Dưới đây là việc thực hiện các phương pháp trên

C++




3
6223

 

3
63
3
64
3
65

3
67
3
0____467
3
2

3
3

3
4
3
5

3
4
3
7
3
8

3
9
3
0
3
1

 

_______04____46241

3
4
3
67
3
6244

3
4
3
610
3
6247

3
9
3
67
3
6250

 

_______09____46252

3
9
3
67
3
6255

3
9
3
7
3
6258

3
29
3
0
3
6261

 

_______09____46263

_______09____46265

_______09____46267

 

_______09____46269

3
6270____46271

3
6272
3
3

3
6274
3
6275

3
6274____46277

_______46272____4617

_______029____46281

3
6270____46283

3
6270____46285

3
6270____46287

_______029____46289

3
6270____46291

 

3
6270____46293

3
9
3
7
3
6296

_______029____46298

3
29____46277

_______09____4617

3
9
3
6304
3
6305

3
29____46307

3
4
3
617

3
4
3
0
3
6312

3
617

 

3
622

3
67
3
624

3
3

3
4
3
67
3
628

3
4
3
630

3
4
3
0
3
633

3
617

C




3
6327

3
635

 

3
67
3
0____467
3
2

3
3

_______04____46335

3
4
3
7
3
8

3
9
3
0
3
1

 

_______04____46241

3
4____46345
3
6346

3
4
3
610
3
6247

3
9
3
67
3
6250

 

_______09____46252

3
9
3
7
3
6357

3
29
3
0
3
679
3
67
3
6362

 

_______09____46263

_______09____46265

_______09____46267

3
9
3
7
3
6371

_______029____46298

3
29____46277

_______09____4617

3
9
3
6304
3
6305

3
29____46307

3
4
3
617

3
4
3
0
3
679
3
67
3
6389

3
617

 

3
6391

3
67
3
624

3
3

3
4
3
67
3
628

3
4
3
678
3
679
3
00
3
01

3
617

 

3
6404

Java




3
6405

3
62
3
08
3
6408

3
4
3
62
3
13
3
67
3
0
3
67
3
2

3
4
3
3

_______09____46335

3
9
3
7
3
24
3
25
3
26
3
27
3
28

3
29
3
0
3
1

 

_______09____46241

3
9
3
6345
3
6434
3
27
3
6436
3
6437
3
6438
3
25
3
42

3
9
3
610
3
6247

3
29
3
6345
3
6446
3
6437
3
42

 

_______029____46252

3
29
3
7
3
6357

3
6454
3
0
3
679
3
67
3
6362

 

_______029____46263

3
29____46265

_______029____46267

3
29
3
7
3
6371

3
6454
3
6469
3
27
3
42

3
6454
3
6277

_______029____4617

3
29
3
6304
3
6305

3
6454
3
6480
3
27
3
42

_______09____4617

3
9
3
0
3
679
3
67
3
6389

3
4
3
617

 

_______04____46391

3
4
3
62
3
13
3
64
3
6498

3
4
3
3

3
9
3
67
3
70
3
71
3
42

_______09____46507

3
4
3
617

3
617

3
6511

Python3




3
6512

 

3
80

 

 

3
81
3
82

 

3
4
3
84

3
4
3
7
3
87
3
88
3
88
3
25
3
91
3
92
3
88
3
88
3
27
3
96

3
9
3
0
3
92

 

_______04____46534

3
4
3
6536
3
88
3
27

3
4
3
6540
3
88
3
92____46543
3
6543
3
6437

3
4
3
610
3
6548
3
88
3
6550

3
9
3
6552
3
88
3
6554
3
19
3
6556
3
6543
3
6543
3
6437