【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
  • 在本篇教程中,我們學習瞭如何使用 Taurus.MVC WebMVC 框架創建一個簡單的頁面。 我們創建了一個控制器並編寫了一個用於呈現頁面的方法,然後創建了對應的視圖,並最終成功運行了應用程式。 在下一篇教程中,我們將繼續探索 Taurus.MVC WebMVC 框架的更多功能和用法。 ...
  • 一:背景 1. 講故事 很多.NET開發者在學習高級調試的時候,使用sos的命令輸出會發現這裡也看不懂那裡也看不懂,比如截圖中的這位朋友。 .NET高級調試屬於一個偏冷門的領域,國內可觀測的資料比較少,所以很多東西需要你自己去探究源代碼,然後用各種調試工具去驗證,相關源代碼如下: coreclr: ...
  • 我一直都以為c中除以2的n次方可以使用右移n位代替,然而在實際調試中發現並不都是這樣的。是在計算餘數是發現了異常 被除數:114325068 右移15計算結果:3488 除法取整計算結果:3489 右移操作計算餘數:33772 除法取整計算餘數:1005 顯然:這是不一樣的。 移位操作是一條cpu指 ...
  • 在上一篇文章中,我們介紹了ReentrantLock類的一些基本用法,今天我們重點來介紹一下ReentrantLock其它的常用方法,以便對ReentrantLock類的使用有更深入的理解。 ...
  • Excelize 是 Go 語言編寫的用於操作電子錶格辦公文檔的開源基礎庫,2024年2月26日,社區正式發佈了 2.8.1 版本,該版本包含了多項新增功能、錯誤修複和相容性提升優化。 ...
  • 雲採用框架(Cloud Adoption Framework,簡稱CAF)為企業上雲提供策略和技術的指導原則和最佳實踐,幫助企業上好雲、用好雲、管好雲,併成功實現業務目標。本雲採用框架是基於服務大量企業客戶的經驗總結,將企業雲採用分為四個階段,並詳細探討企業應在每個階段採取的業務和技術策略;同時,還 ...
  • 與TXT文本文件,PDF文件更加專業也更適合傳輸,常用於正式報告、簡歷、合同等場合。項目中如果有使用Java將TXT文本文件轉為PDF文件的需求,可以查看本文中介紹的免費實現方法。 免費Java PDF庫 本文介紹的方法需要用到Free Spire.PDF for Java,該免費庫支持多種操作、轉 ...
  • 指針和引用 當我們需要在程式中傳遞變數的地址時,可以使用指針或引用。它們都可以用來間接訪問變數,但它們之間有一些重要的區別。 指針是一個變數,它存儲另一個變數的地址。通過指針,我們可以訪問存儲在該地址中的變數。指針可以被重新分配,可以指向不同的變數,也可以為NULL。指針使用*運算符來訪問存儲在地址 ...
  • 即使再小再簡單的需求,作為研發開發完畢之後,我們可以直接上線麽?其實很多時候事故往往就是由於“不以為意”發生的。事故的發生往往也遵循“墨菲定律”,這就要求我們更要敬畏線上,再小的需求點都需要經過嚴格的測試驗證才能上線。 ...
  • 這裡給大家分享我在網上總結出來的一些知識,希望對大家有所幫助 一、是什麼 許可權是對特定資源的訪問許可,所謂許可權控制,也就是確保用戶只能訪問到被分配的資源 而前端許可權歸根結底是請求的發起權,請求的發起可能有下麵兩種形式觸發 頁面載入觸發 頁面上的按鈕點擊觸發 總的來說,所有的請求發起都觸發自前端路由或 ...