【2023.03.20】P4710 「物理」平拋運動

来源:https://www.cnblogs.com/xinao2186182144/archive/2023/05/23/17237773.html
-Advertisement-
Play Games

題目傳送門: >[【洛谷】P4710 [物理]平拋運動](https://www.luogu.com.cn/problem/P4710 "【洛谷】P4710 [物理]平拋運動") ## Step 1:前置芝士 您需要知道並瞭解以下芝士: 1. 數學: - 三角函數; 2. 物理: - 加速度公式; ...


題目傳送門:

【洛谷】P4710 [物理]平拋運動

Step 1:前置芝士

您需要知道並瞭解以下芝士:

  1. 數學:
    • 三角函數;
  2. 物理:
    • 加速度公式;
    • 位移公式;

那麼如果您並不瞭解以上芝士,那麼請繼續向下看;如果您已經掌握以上芝士,那麼請跳至“Step 2”。

三角函數講解:

註意,本題為物理題解,故不會放出三角函數作圖過程、函數圖像、拓展公式、常考題型、易錯題型等,若需要請參考以下鏈接:

Bilibili: Link

WeChat: Link

如圖,三角形ABC為直角三角形,∠B為直角,∠A為θ。其中線段AB長為c,線段BC長為a,線段AC長為b

image

那麼對於直角三角形,它有六種三角函數:

  • 正弦(sin)
  • 餘弦(cos)
  • 正切(tan)
  • 餘切(cot)
  • 正割(sec)
  • 餘割(csc)

那他們都等於什麼呢:

\[\sin θ = \frac{對邊}{斜邊} = \frac{a}{b}; \]

\[\cos θ = \frac{鄰邊}{斜邊} = \frac{c}{b}; \]

\[\tan θ = \frac{對邊}{鄰邊} = \frac{a}{c}; \]

\[\cot θ = \frac{鄰邊}{對邊} = \frac{c}{a}; \]

\[\sec θ = \frac{斜邊}{鄰邊} = \frac{b}{c}; \]

\[\csc θ = \frac{斜邊}{對邊} = \frac{b}{a}; \]

好了,關於三角函數知道這麼多已經足夠我們做這道題了。

加速度公式:

\[a = \frac{(v_t - v_0)}{t}; \]

其中,\(a\)為加速度;\(v_t\)為最終速度;\(v_0\)為初始速度;\(t\)為運動時間;

位移公式:

\[s = v_0 \times t + \frac{a \times t ^ 2}{2}; \]

其中,\(a\)為加速度;\(v_0\)為初始速度;\(t\)為運動時間;\(s\)為位移;


Step 2:正文

先看題目:

一個可以視為質點的小球在點 \(A(x_0, y_0)\) 沿 \(x\) 軸負方向以某速度拋出,無視除重力外的所有阻力,最後恰好以速度 \(v\) 砸到 \(B(0, 0)\) 點。

易知,小球是在做平拋運動(看題目就知道了,那麼我們可以將平拋運動看做一個水平方向的勻速直線運動(無視所有阻力,則在水平方向不受力)和一個豎直方向的勻加速運動。在這個勻加速運動中,它的初速度為零,並且只受重力作用,所以是在做自由落體運動。

那麼,我們就把題目給出的速度分成兩個速度:水平方向的速度與豎直方向的速度。對於水平方向的速度,它是恆不變的,因為本題目無視所有阻力;而對於豎直方向的速度,它是在勻速增加的(重力加速度)。

看到題目是給的角度那麼我們就應該想到三角函數。就按題目中最後一個圖:

image

按上圖說,我們可以求出豎直方向的最終速度vy

\[vy = v \cos θ \]

又有重力加速度的公式:

\[v = tg \]

題目已經求出了豎直方向最終速度,那麼我們就可以用它求出時間,設重力加速度為g,則有:

\[t = \frac{vy}{g} \]

醬紫我們就可以這麼表示時間t

\[t = \frac{v \cos θ}{g} \]

再由位移公式求出豎直方向的位移即縱坐標就好啦:

\[sy = v0(即為零) \times \frac{v \cos θ}{g} + \frac{g \times (\frac{v \cos θ}{g})^2}{2} \]

分析完豎直方向,我們再看看水平方向。上面已經解釋過了水平方向是在做勻速直線運動,那最終的水平方向位移即橫坐標sx:

\[sx = vx \times t \]

同時它也可以醬紫表示:

\[sx = vx \times \frac{v \cos θ}{g} \]

我們再去分析水平方向的速度,繼續按介個圖說:

image

顯然良心出題人已經幫我們標出來了:

\[vx = v \sin θ \]

那我們再將這個式子代入sx的式子中:

\[sx = v \sin θ \times \frac{v \cos θ}{g} \]

我們就又可以表示出橫坐標啦!下麵就是碼代碼就好啦。

Step 3:代碼

直接放代碼了就:

Link
#include <bits/stdc++.h>
using namespace std;
double sx,sy;
double vx,vy;
double v,d,g,t;
int main(){
	//freopen(".in","r",stdin);
	//freopen(".out","w",stdout);
	cin>>v;
	cin>>d;
	g=10.0;
	t=v*cos(d)*1.0/g;
	sy=(g*t*t)/2;
	sx=v*sin(d);
	sx*=t;
	cout<<sx<<" "<<sy;
	//fclose(stdin);
	//fclose(stdout);
	return 0;
}

建議不要在使用double類型時使用pow,就是TM這麼寫炸的。

就醬紫吧。

本文來自博客園,作者:Taunting_Wind,轉載請註明原文鏈接:https://www.cnblogs.com/xinao2186182144/p/17237773.html


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • ## n 如果在我的電腦上已經安裝了nodejs,但是覺得這個版本不好用,或者是不相容公司的項目,那麼可以使用n進行node的版本管理。n相對於nvm來說,安裝起來還是非常方便的。 ## 安裝 #### 1. 首先確定nodejs版本,確定已安裝nodejs ``` node -v ``` #### ...
  • Deferred Components,官方實現的Flutter代碼動態下發的方案。本文主要介紹官方方案的實現細節,探索在國內環境下使用Deferred Components,並且實現了最小驗證demo。讀罷本文,你就可以實現Dart文件級別代碼的動態下發。 ...
  • 在 JavaScript 中, undefined 和 null 是兩個特殊的值,用於表示缺失或空值。 undefined 是一個表示未定義或未賦值的原始值。它在以下情況下使用: 1. 變數聲明瞭但未初始化時,預設為 undefined 。 let x; console.log(x); // und ...
  • # React筆記-Hooks(九) ## Hooks ### 概念 >React Hooks 的意思是 組件儘量寫成純函數 如果需要外部功能和副作用 就用鉤子把外部代碼"鉤"進來 ### 函數組件和類組件區別 >- 函數組件沒有狀態(state) 類組件有 >- 函數組件沒有生命周期 類組件有(掛 ...
  • ## 一、模式動機 >觀察者模式用於描述對象之間的依賴關係,它引入了觀察者和觀察目標兩類不同的角色,由於提供了抽象層,它使得增加新的觀察者和觀察目標都很方便。觀察者模式廣泛應用於各種編程語言的事件處理模型中,Java語言也提供了對觀察者模式的全面支持。 - 一個對象的狀態或行為的變化將導致其他對象的 ...
  • ### GC 優化 #### 1.防止大對象Buffer到記憶體中 **現象**:當大包請求時,YGC 耗時嚴重 **原因**:預設情況下 Zuul2 並不會緩存請求體(DirectByteBuffer),也就意味著它會先發送接收到的請求 Headers 到後端服務,之後接收到請求體再繼續發送到後端服 ...
  • 歡迎來到本篇文章!在這裡,我將帶領大家快速學習 Spring 的基本概念,並解答兩個關鍵問題:什麼是 Spring,以及為什麼學習 Spring。 廢話少說,下麵,我們開始吧! ...
  • # xxxx爬蟲——伺服器渲染和客戶端渲染 [toc] ## 伺服器渲染 - 專業解釋 伺服器渲染(Server-Side Rendering,SSR)是一種在伺服器端完成頁面渲染的網頁處理技術。具體來說,就是伺服器在響應客戶端請求時,會生成頁面的HTML代碼,並將其返回給客戶端。這種方式的優點包括 ...
一周排行
    -Advertisement-
    Play Games
  • 1、預覽地址:http://139.155.137.144:9012 2、qq群:801913255 一、前言 隨著網路的發展,企業對於信息系統數據的保密工作愈發重視,不同身份、角色對於數據的訪問許可權都應該大相徑庭。 列如 1、不同登錄人員對一個數據列表的可見度是不一樣的,如數據列、數據行、數據按鈕 ...
  • 前言 上一篇文章寫瞭如何使用RabbitMQ做個簡單的發送郵件項目,然後評論也是比較多,也是準備去學習一下如何確保RabbitMQ的消息可靠性,但是由於時間原因,先來說說設計模式中的簡單工廠模式吧! 在瞭解簡單工廠模式之前,我們要知道C#是一款面向對象的高級程式語言。它有3大特性,封裝、繼承、多態。 ...
  • Nodify學習 一:介紹與使用 - 可樂_加冰 - 博客園 (cnblogs.com) Nodify學習 二:添加節點 - 可樂_加冰 - 博客園 (cnblogs.com) 介紹 Nodify是一個WPF基於節點的編輯器控制項,其中包含一系列節點、連接和連接器組件,旨在簡化構建基於節點的工具的過程 ...
  • 創建一個webapi項目做測試使用。 創建新控制器,搭建一個基礎框架,包括獲取當天日期、wiki的請求地址等 創建一個Http請求幫助類以及方法,用於獲取指定URL的信息 使用http請求訪問指定url,先運行一下,看看返回的內容。內容如圖右邊所示,實際上是一個Json數據。我們主要解析 大事記 部 ...
  • 最近在不少自媒體上看到有關.NET與C#的資訊與評價,感覺大家對.NET與C#還是不太瞭解,尤其是對2016年6月發佈的跨平臺.NET Core 1.0,更是知之甚少。在考慮一番之後,還是決定寫點東西總結一下,也回顧一下.NET的發展歷史。 首先,你沒看錯,.NET是跨平臺的,可以在Windows、 ...
  • Nodify學習 一:介紹與使用 - 可樂_加冰 - 博客園 (cnblogs.com) Nodify學習 二:添加節點 - 可樂_加冰 - 博客園 (cnblogs.com) 添加節點(nodes) 通過上一篇我們已經創建好了編輯器實例現在我們為編輯器添加一個節點 添加model和viewmode ...
  • 前言 資料庫併發,數據審計和軟刪除一直是數據持久化方面的經典問題。早些時候,這些工作需要手寫複雜的SQL或者通過存儲過程和觸發器實現。手寫複雜SQL對軟體可維護性構成了相當大的挑戰,隨著SQL字數的變多,用到的嵌套和複雜語法增加,可讀性和可維護性的難度是幾何級暴漲。因此如何在實現功能的同時控制這些S ...
  • 類型檢查和轉換:當你需要檢查對象是否為特定類型,並且希望在同一時間內將其轉換為那個類型時,模式匹配提供了一種更簡潔的方式來完成這一任務,避免了使用傳統的as和is操作符後還需要進行額外的null檢查。 複雜條件邏輯:在處理複雜的條件邏輯時,特別是涉及到多個條件和類型的情況下,使用模式匹配可以使代碼更 ...
  • 在日常開發中,我們經常需要和文件打交道,特別是桌面開發,有時候就會需要載入大批量的文件,而且可能還會存在部分文件缺失的情況,那麼如何才能快速的判斷文件是否存在呢?如果處理不當的,且文件數量比較多的時候,可能會造成卡頓等情況,進而影響程式的使用體驗。今天就以一個簡單的小例子,簡述兩種不同的判斷文件是否... ...
  • 前言 資料庫併發,數據審計和軟刪除一直是數據持久化方面的經典問題。早些時候,這些工作需要手寫複雜的SQL或者通過存儲過程和觸發器實現。手寫複雜SQL對軟體可維護性構成了相當大的挑戰,隨著SQL字數的變多,用到的嵌套和複雜語法增加,可讀性和可維護性的難度是幾何級暴漲。因此如何在實現功能的同時控制這些S ...