【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
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...