Vì chúng ta sẽ được cung cấp bởi các cạnh và sau đó chúng ta phải tìm góc. Đối với câu hỏi này, chúng ta có thể đưa ra nhiều giải pháp
- Sử dụng mô-đun toán học
- Sử dụng mô-đun toán học. Giải pháp thay thế
- Sử dụng mô-đun toán học với ít dòng mã hơn
- Giải pháp thay thế
CŨNG ĐỌC. Giải pháp Hackerrank. Hàm bản đồ và lambda trong Python
Giải pháp-1. Sử dụng mô-đun toán học
Mô-đun toán học là một mô-đun tiêu chuẩn trong Python và luôn có sẵn. Để sử dụng các hàm toán học trong mô-đun này, bạn phải nhập mô-đun bằng nhập toán. Hãy để chúng tôi nhập mô-đun toán học và tìm góc bằng cách sử dụng các cạnh đã cho của tam giác
# importing the module
import math
# taking the input from user
ab = float[input[]]
bc = float[input[]]
# finding the distance
ac = math.sqrt[[ab*ab]+[bc*bc]]
bm = ac / 2.0
mc = bm
# equalizing the sides
b = mc
c = bm
a = bc
# where b=c
# finding the angle in radian
angel_b_radian = math.acos[a / [2*b]]
# converting the radian to degree
angel_b_degree = int[round[[180 * angel_b_radian] / math.pi]]
# printing with degree
print[angel_b_degree,'\u00B0',sep='']
Đầu vào
10
10
đầu ra
45°
Như các bạn thấy ta được góc 45 độ theo yêu cầu
Quảng cáo
Giải pháp-2. Sử dụng một mô-đun toán học. Giải pháp thay thế
Bây giờ, chúng tôi sẽ chuyển đổi đoạn mã trên thành ít dòng hơn như một giải pháp thay thế được hiển thị bên dưới
# importing the math module
import math
# taking input of the sides
ab=int[input[]]
bc=int[input[]]
# finding the distance
ca=math.hypot[ab,bc]
mc=ca/2
# finding the angle
bca=math.asin[1*ab/ca]
bm=math.sqrt[[bc**2+mc**2]-[2*bc*mc*math.cos[bca]]]
mbc=math.asin[math.sin[bca]*mc/bm]
# printing the angle
print[int[round[math.degrees[mbc],0]],'\u00B0',sep='']
Đầu vào
10
10
đầu ra
45°
Như bạn có thể thấy, chúng tôi nhận được 45 độ được yêu cầu trong mẫu
Giải pháp-3. Sử dụng mô-đun Math với ít dòng hơn
Chúng tôi thậm chí có thể giảm số lượng dòng để làm cho mã của chúng tôi được tối ưu hóa và dễ đọc hơn
# importing math
import math
# taking inputs
a = int[input[]]
b = int[input[]]
# finding distace and angle
M = math.sqrt[a**2+b**2]
theta = math.acos[b/M ]
# printing the angle
print[int[round[math.degrees[theta],0]],'\u00B0',sep='']
Đầu vào
Quảng cáo
10
10
đầu ra
45°
Như bạn có thể thấy, chúng tôi có thể nhận được kết quả tương tự bằng cách sử dụng ít dòng mã hơn
CŨNG ĐỌC. Giải pháp Hackerrank. Điểm từ trong Python
Giải pháp-4. Giải pháp thay thế
Bây giờ, chúng ta sẽ sử dụng một phương pháp đơn giản khác để tính góc
45
1Đầu vào
10
10
đầu ra
45°
Các char[176] trong mã đại diện cho dấu độ
Tóm lược
Vì chúng ta phải tìm góc của một tam giác khi biết các cạnh. Trong bài viết ngắn này, chúng tôi đưa ra nhiều giải pháp để giải quyết câu hỏi TÌM GÓC từ Hacker Rank
Người giới thiệu
Python toán
Câu hỏi về xếp hạng Hacker. Tìm góc MBC trong Python
Các từ khóa liên quan. hackerrank tìm giải pháp angle mbc trong python, hackerrank tìm giải pháp angle mbc trong python3, 1tìm giải pháp angle mbc hackerrank
Xin chào các Finxters. Hôm nay, bạn sẽ học một chức năng quan trọng mà bạn có thể cần phải viết trong tương lai. cách viết chương trình Python tính góc giữa 2 điểm theo chuyển động cùng chiều kim đồng hồ
Chúng tôi sẽ sử dụng các nguyên tắc trong ngôn ngữ Python để viết một chương trình hoạt động để viết các góc và tính góc hoặc radian trong một mặt phẳng nhất định. Chúng ta sẽ dành thời gian và giải thích mọi thứ, vì vậy đừng lo lắng khi chúng ta cùng nhau vượt qua điều này
Vấn đề. Tính Góc Giữa Hai Điểm
Trong vấn đề cụ thể này, chúng tôi muốn tìm góc theo chiều kim đồng hồ giữa vectơ từ gốc tọa độ đến điểm A và vectơ từ gốc tọa độ đến điểm B. Chúng ta sẽ có ba điểm và hai vectơ sao cho góc của chúng ta được xác định rõ. Điều này có thể được sử dụng trong cả định nghĩa đại số và hình học. Ví dụ của chúng tôi, chúng tôi sẽ sử dụng định nghĩa hình học
Những gì chúng tôi muốn hoàn thành. Viết chương trình Python sẽ tính góc theo chuyển động theo chiều kim đồng hồ
Chương trình của chúng ta cần có khả năng tính các góc giữa hai điểm có gốc tọa độ cho trước là
# importing the math module
import math
# taking input of the sides
ab=int[input[]]
bc=int[input[]]
# finding the distance
ca=math.hypot[ab,bc]
mc=ca/2
# finding the angle
bca=math.asin[1*ab/ca]
bm=math.sqrt[[bc**2+mc**2]-[2*bc*mc*math.cos[bca]]]
mbc=math.asin[math.sin[bca]*mc/bm]
# printing the angle
print[int[round[math.degrees[mbc],0]],'\u00B0',sep='']
5, điểm A # importing the math module
import math
# taking input of the sides
ab=int[input[]]
bc=int[input[]]
# finding the distance
ca=math.hypot[ab,bc]
mc=ca/2
# finding the angle
bca=math.asin[1*ab/ca]
bm=math.sqrt[[bc**2+mc**2]-[2*bc*mc*math.cos[bca]]]
mbc=math.asin[math.sin[bca]*mc/bm]
# printing the angle
print[int[round[math.degrees[mbc],0]],'\u00B0',sep='']
6 và điểm B # importing the math module
import math
# taking input of the sides
ab=int[input[]]
bc=int[input[]]
# finding the distance
ca=math.hypot[ab,bc]
mc=ca/2
# finding the angle
bca=math.asin[1*ab/ca]
bm=math.sqrt[[bc**2+mc**2]-[2*bc*mc*math.cos[bca]]]
mbc=math.asin[math.sin[bca]*mc/bm]
# printing the angle
print[int[round[math.degrees[mbc],0]],'\u00B0',sep='']
7. 3 điểm này sẽ cho góc 45* trong tổng số 360* bắt đầu từ tâm của đồ thị # importing the math module
import math
# taking input of the sides
ab=int[input[]]
bc=int[input[]]
# finding the distance
ca=math.hypot[ab,bc]
mc=ca/2
# finding the angle
bca=math.asin[1*ab/ca]
bm=math.sqrt[[bc**2+mc**2]-[2*bc*mc*math.cos[bca]]]
mbc=math.asin[math.sin[bca]*mc/bm]
# printing the angle
print[int[round[math.degrees[mbc],0]],'\u00B0',sep='']
8Tôi muốn chỉ cho bạn 2 cách khác nhau để làm điều này. Một cách tôi sẽ có một chương trình được viết ra để chỉ cho bạn từng bước. Theo cách thứ hai, tôi sẽ chỉ cho bạn một cách Pythonic hơn để viết cùng một chương trình—giúp bạn có lợi thế khi viết chương trình cho một cuộc phỏng vấn viết mã
Phương pháp 1. Viết ra — Con đường khó khăn
Trong ví dụ này, chúng tôi muốn bắt đầu bằng cách nhập mô-đun
# importing the math module
import math
# taking input of the sides
ab=int[input[]]
bc=int[input[]]
# finding the distance
ca=math.hypot[ab,bc]
mc=ca/2
# finding the angle
bca=math.asin[1*ab/ca]
bm=math.sqrt[[bc**2+mc**2]-[2*bc*mc*math.cos[bca]]]
mbc=math.asin[math.sin[bca]*mc/bm]
# printing the angle
print[int[round[math.degrees[mbc],0]],'\u00B0',sep='']
9, sau đó tạo một lớp xác định 10
10
0 khởi tạo 10
10
1 và 10
10
20. Chúng tôi tạo các biến sau, 10
10
21 và 10
10
22 với các tham số mặc định10
10
5sau đó từ toán học, chúng tôi sử dụng phương pháp
10
10
23, Trả về một 10
10
24, theo đơn vị radian. Kết quả là giữa 10
10
25 và 10
10
26. Vectơ trong mặt phẳng từ gốc toạ độ đến điểm 10
10
27 tạo góc này với trục 10
10
28 dương. Mục đích của 10
10
29 là nó biết được dấu của cả hai đầu vào, vì vậy nó có thể tính góc tọa độ chính xác cho gócVí dụ:
45°
30 và 45°
31 đều là 45°
32, nhưng 45°
33 là 45°
34. Chúng tôi lưu các vectơ mới này vào các biến mới. 45°
35 và 45°
3610
10
2Bằng cách lấy hai điểm này và trừ điểm thứ nhất cho điểm thứ hai, nhân nó với tích của 180 chia cho số pi và lưu nó vào một biến [‘
45°
37’]. Chúng tôi modulo 45°
38 bằng 360. r nhỏ hơn 0 vì nó sẽ là số âm. Sau đó, chúng tôi in 45°
37 ra. Đây chỉ là một cách để viết ra vấn đề này. Nó hơi lộn xộn và nếu không cẩn thận, chúng ta có thể dễ dàng đưa ra câu trả lời saiPhương pháp 2. Viết nó ra — Cách Pythonic với NumPy
Trong ví dụ tiếp theo này, tôi sẽ sử dụng NumPy để lấy góc giữa hai điểm và trả lại cho tôi. Khi viết bằng Python, tốt nhất bạn nên tuân theo PEP8 và viết chương trình của bạn càng đơn giản càng tốt để chiếm ít bộ nhớ hơn trong mã của bạn và do đó ít thời gian chạy hơn khi kiểm tra chương trình của bạn
Điều đầu tiên chúng ta sẽ làm là
# importing the math module
import math
# taking input of the sides
ab=int[input[]]
bc=int[input[]]
# finding the distance
ca=math.hypot[ab,bc]
mc=ca/2
# finding the angle
bca=math.asin[1*ab/ca]
bm=math.sqrt[[bc**2+mc**2]-[2*bc*mc*math.cos[bca]]]
mbc=math.asin[math.sin[bca]*mc/bm]
# printing the angle
print[int[round[math.degrees[mbc],0]],'\u00B0',sep='']
50, sau đó xác định góc sử dụng điểm 1 [# importing the math module
import math
# taking input of the sides
ab=int[input[]]
bc=int[input[]]
# finding the distance
ca=math.hypot[ab,bc]
mc=ca/2
# finding the angle
bca=math.asin[1*ab/ca]
bm=math.sqrt[[bc**2+mc**2]-[2*bc*mc*math.cos[bca]]]
mbc=math.asin[math.sin[bca]*mc/bm]
# printing the angle
print[int[round[math.degrees[mbc],0]],'\u00B0',sep='']
51] và điểm 2 [# importing the math module
import math
# taking input of the sides
ab=int[input[]]
bc=int[input[]]
# finding the distance
ca=math.hypot[ab,bc]
mc=ca/2
# finding the angle
bca=math.asin[1*ab/ca]
bm=math.sqrt[[bc**2+mc**2]-[2*bc*mc*math.cos[bca]]]
mbc=math.asin[math.sin[bca]*mc/bm]
# printing the angle
print[int[round[math.degrees[mbc],0]],'\u00B0',sep='']
52] làm đối số. Một lần nữa chúng ta sẽ sử dụng # importing the math module
import math
# taking input of the sides
ab=int[input[]]
bc=int[input[]]
# finding the distance
ca=math.hypot[ab,bc]
mc=ca/2
# finding the angle
bca=math.asin[1*ab/ca]
bm=math.sqrt[[bc**2+mc**2]-[2*bc*mc*math.cos[bca]]]
mbc=math.asin[math.sin[bca]*mc/bm]
# printing the angle
print[int[round[math.degrees[mbc],0]],'\u00B0',sep='']
53 nhân với # importing the math module
import math
# taking input of the sides
ab=int[input[]]
bc=int[input[]]
# finding the distance
ca=math.hypot[ab,bc]
mc=ca/2
# finding the angle
bca=math.asin[1*ab/ca]
bm=math.sqrt[[bc**2+mc**2]-[2*bc*mc*math.cos[bca]]]
mbc=math.asin[math.sin[bca]*mc/bm]
# printing the angle
print[int[round[math.degrees[mbc],0]],'\u00B0',sep='']
51 để tìm góc 1 và # importing the math module
import math
# taking input of the sides
ab=int[input[]]
bc=int[input[]]
# finding the distance
ca=math.hypot[ab,bc]
mc=ca/2
# finding the angle
bca=math.asin[1*ab/ca]
bm=math.sqrt[[bc**2+mc**2]-[2*bc*mc*math.cos[bca]]]
mbc=math.asin[math.sin[bca]*mc/bm]
# printing the angle
print[int[round[math.degrees[mbc],0]],'\u00B0',sep='']
53 nhân với # importing the math module
import math
# taking input of the sides
ab=int[input[]]
bc=int[input[]]
# finding the distance
ca=math.hypot[ab,bc]
mc=ca/2
# finding the angle
bca=math.asin[1*ab/ca]
bm=math.sqrt[[bc**2+mc**2]-[2*bc*mc*math.cos[bca]]]
mbc=math.asin[math.sin[bca]*mc/bm]
# printing the angle
print[int[round[math.degrees[mbc],0]],'\u00B0',sep='']
52 để tìm góc thứ hai. Chúng tôi sẽ trả về độ bằng cách sử dụng hàm # importing the math module
import math
# taking input of the sides
ab=int[input[]]
bc=int[input[]]
# finding the distance
ca=math.hypot[ab,bc]
mc=ca/2
# finding the angle
bca=math.asin[1*ab/ca]
bm=math.sqrt[[bc**2+mc**2]-[2*bc*mc*math.cos[bca]]]
mbc=math.asin[math.sin[bca]*mc/bm]
# printing the angle
print[int[round[math.degrees[mbc],0]],'\u00B0',sep='']
57 bằng cách trừ góc đầu tiên từ góc thứ hai, sau đó chúng tôi nhân 2 và # importing the math module
import math
# taking input of the sides
ab=int[input[]]
bc=int[input[]]
# finding the distance
ca=math.hypot[ab,bc]
mc=ca/2
# finding the angle
bca=math.asin[1*ab/ca]
bm=math.sqrt[[bc**2+mc**2]-[2*bc*mc*math.cos[bca]]]
mbc=math.asin[math.sin[bca]*mc/bm]
# printing the angle
print[int[round[math.degrees[mbc],0]],'\u00B0',sep='']
58, sau đó chúng tôi điều chỉnh sản phẩm của hai câu trả lời. Khi chúng tôi nhập vectơ của mình, chúng tôi nhận được câu trả lời chính xác khi chúng tôi in45°
3Như bạn có thể thấy, việc in
# importing the math module
import math
# taking input of the sides
ab=int[input[]]
bc=int[input[]]
# finding the distance
ca=math.hypot[ab,bc]
mc=ca/2
# finding the angle
bca=math.asin[1*ab/ca]
bm=math.sqrt[[bc**2+mc**2]-[2*bc*mc*math.cos[bca]]]
mbc=math.asin[math.sin[bca]*mc/bm]
# printing the angle
print[int[round[math.degrees[mbc],0]],'\u00B0',sep='']
59 và # importing the math module
import math
# taking input of the sides
ab=int[input[]]
bc=int[input[]]
# finding the distance
ca=math.hypot[ab,bc]
mc=ca/2
# finding the angle
bca=math.asin[1*ab/ca]
bm=math.sqrt[[bc**2+mc**2]-[2*bc*mc*math.cos[bca]]]
mbc=math.asin[math.sin[bca]*mc/bm]
# printing the angle
print[int[round[math.degrees[mbc],0]],'\u00B0',sep='']
60 cho chúng ta hai câu trả lời hoàn toàn khác nhau. Lý do cho điều này là vì điểm đầu tiên đang di chuyển theo chiều kim đồng hồ đến điểm thứ hai cho chúng ta số nhỏ hơn. Bằng cách đi ngược chiều kim đồng hồ, chúng tôi nhận được một số lớn hơn nhiều so với góc thực tế mà chúng tôi đang tìm kiếmTóm lược
Như bạn thấy, viết chương trình này bằng Python thật dễ dàng vì Python đã tích hợp sẵn các mô-đun toán học và NumPy để làm cho mã đẹp và rõ ràng. Nó có vẻ tùy ý nhưng chương trình này có thể được sử dụng trong một số ứng dụng từ kiến trúc đến thực hiện các chuyến tham quan ảo trong khách sạn, căn hộ hoặc thậm chí cả nhà hàng
Như trong ảnh này, bạn có thể tìm thấy một điểm duy nhất trong không gian với ba điểm này. Nó cũng có thể được sử dụng để tạo một căn phòng ảo hoặc trong cuộc chiến chống tội phạm khi cố gắng sử dụng khoa học pháp y để bắt kẻ xấu. Python là ngôn ngữ lập trình tuyệt vời không bao giờ hết làm tôi ngạc nhiên. Tôi hy vọng rằng sau khi đọc bài viết này, bạn sẽ được truyền cảm hứng để viết các chương trình Python của riêng mình bằng cách sử dụng những gì bạn đã học ở đây để thêm vào danh mục đầu tư của mình