Cách tìm góc trong python

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='']
8

Tô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 định

10
10
5

sau đó 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óc

Ví 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°
36

10
10
2

Bằ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 sai

Phươ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 in

45°
3

Như 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ếm

Tó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

Chủ Đề