【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
  • 一、openKylin簡介 openKylin(開放麒麟) 社區是在開源、自願、平等和協作的基礎上,由基礎軟硬體企業、非營利性組織、社團組織、高等院校、科研機構和個人開發者共同創立的一個開源社區,致力於通過開源、開放的社區合作,構建桌面操作系統開源社區,推動Linux開源技術及其軟硬體生態繁榮發展。 ...
  • 簡介 Flurl是一個用於構建基於HTTP請求的C#代碼的庫。它的主要目的是簡化和優雅地處理網路請求(只用很少的代碼完成請求)。Flurl提供了一種簡單的方法來構建GET、POST、PUT等類型的請求,以及處理響應和異常。它還提供了一些高級功能,如鏈式調用、緩存請求結果、自動重定向等。本文將介紹Fl ...
  • 一:背景 1. 講故事 最近也挺奇怪,看到了兩起 CPU 爆高的案例,且誘因也是一致的,覺得有一些代表性,合併分享出來幫助大家來避坑吧,閑話不多說,直接上 windbg 分析。 二:WinDbg 分析 1. CPU 真的爆高嗎 這裡要提醒一下,別人說爆高不一定真的就是爆高,我們一定要拿數據說話,可以 ...
  • 剛開始寫文章,封裝Base基類的時候,添加了trycatch異常塊,不過當時沒有去記錄日誌,直接return了。有小伙伴勸我不要吃了Exception 其實沒有啦,項目剛開始,我覺得先做好整體結構比較好。像是蓋樓一樣。先把樓體建造出來,然後再一步一步的美化完善。 基礎的倉儲模式已經ok,Autofa ...
  • 框架目標 什麼是框架,框架能做到什麼? 把一個方向的技術研發做封裝,具備通用性,讓使用框架的開發者用起來很輕鬆。 屬性: 通用性 健壯性 穩定性 擴展性 高性能 組件化 跨平臺 從零開始-搭建框架 建立項目 主鍵查詢功能開發 綁定實體 一步一步的給大家推導: 一邊寫一邊測試 從零開始--搭建框架 1 ...
  • 大家好,我是沙漠盡頭的狼。 本方首發於Dotnet9,介紹使用dnSpy調試第三方.NET庫源碼,行文目錄: 安裝dnSpy 編寫示常式序 調試示常式序 調試.NET庫原生方法 總結 1. 安裝dnSpy dnSpy是一款功能強大的.NET程式反編譯工具,可以對.NET程式進行反編譯,代替庫文檔的功 ...
  • 在`Windows`操作系統中,每個進程的虛擬地址空間都被劃分為若幹記憶體塊,每個記憶體塊都具有一些屬性,如記憶體大小、保護模式、類型等。這些屬性可以通過`VirtualQueryEx`函數查詢得到。該函數可用於查詢進程虛擬地址空間中的記憶體信息的函數。它的作用類似於`Windows`操作系統中的`Task... ...
  • 背景介紹 1,最近有一個大數據量插入的操作入庫的業務場景,需要先做一些其他修改操作,然後在執行插入操作,由於插入數據可能會很多,用到多線程去拆分數據並行處理來提高響應時間,如果有一個線程執行失敗,則全部回滾。 2,在spring中可以使用@Transactional註解去控制事務,使出現異常時會進行 ...
  • 線程(thread)是操作系統能夠進行運算調度的最小單位。它被包含在進程之中,是進程中的實際 運作單位。一條線程指的是進程中一個單一順序的控制流,一個進程中可以併發多個線程,每條線 程並行執行不同的任務。 ...
  • 發現Java 21的StringBuilder和StringBuffer中多了repeat方法: /** * @throws IllegalArgumentException {@inheritDoc} * * @since 21 */ @Override public StringBuilder ...