Program3
├── CMakeLists.txt
├── CMakePresets.json
├── CPPs
├── Program3.cpp // this is example code i'm trying to run
├── Program3.txt // this is the premade .cpp file that came with the cmake template
├── Hs
├── Program3.h //this is the premade .h file that came with the cmake template
├── out
我在 Visual Studio 中使用 C++ 的 CMAKE 模板,并希望运行 SFML 示例代码。为了运行代码,我需要包含 .hpp 文件。我不想复制包含文件并将它们直接粘贴到我的项目中,并且希望仅引用其自己目录中的库。
这是我正在遵循的教程,但略有修改https://www.youtube.com/watch?v=c35L674qzIE
我不确定语法,但我认为我应该使用 target_include_directories 或 include_directories 让程序在 SFML 文件夹中搜索所需的文件。
如果无法从项目外部引用文件,我可能会弄错,只需按照建议将文件复制到项目中即可。
错误是 严重性代码 说明 项目文件行抑制状态详细信息 错误 C1083 无法打开包含文件:“SFML/Graphics.hpp”:没有此类文件或目录 C:\Users\saled\OneDrive\Desktop\GameDev\StrategieLLC stAttempt\Program3\out uild\x64-debug\Program3 C: \Users\saled\OneDrive\Desktop\GameDev\StrategieLLC stAttempt\Program3\CPPs\Program3.cpp 1
target_include_directories({CMAKE_SOURCE_DIR} ../DevLibrariesUsed/SFML-2.6.1-windows-vc17-64-bit/SFML-2.6.1/include/SFML)
.. 引用项目和库文件夹 DevLibariesUsed 之间的公共文件夹。
我也尝试过
target_include_directories(Program3 ../DevLibrariesUsed/SFML-2.6.1-windows-vc17-64-bit/SFML-2.6.1/include/SFML)
和
include_directories(Program3 ../DevLibrariesUsed/SFML-2.6.1-windows-vc17-64-bit/SFML-2.6.1/include/SFML)
但是我可能会尝试仅链接每个 .hpp 文件,但是库的该部分中有更多文件夹,我不想在某些时候直接添加所有内容。
这个
target_link_libraries(Program3 ../DevLibrariesUsed/SFML-2.6.1-windows-vc17-64-bit/SFML-2.6.1/lib/sfml-window.lib)
似乎适用于 .lib 文件?所以我不知道为什么类似的语法不适用于 include_directories
如果您希望实现蒙特卡罗模拟,它可以应用于各种环境,例如金融、物理和风险分析等。核心概念涉及使用随机性来解决原则上可能是确定性的问题。以下是 Python 中蒙特卡洛模拟的基本示例,用于估计 π 的值:
import random
def estimate_pi(num_samples):
inside_circle = 0
for _ in range(num_samples):
x, y = random.random(), random.random()
distance = x**2 + y**2
if distance <= 1:
inside_circle += 1
pi_estimate = 4 * inside_circle / num_samples
return pi_estimate
# Example usage
num_samples = 1000000
pi_estimate = estimate_pi(num_samples)
print(f"Estimated Pi: {pi_estimate}")
此代码对单位正方形 (0,0) 到 (1,1) 中的随机点进行采样,并检查该点是否位于该正方形内的单位圆四分之一内。圆内点与总点的比率乘以 4(因为我们只查看圆的四分之一)给出了 π 的估计值。
(x, y)
坐标表示单位正方形内随机选择的点。distance = x**2 + y**2
使用勾股定理计算点到原点 (0,0)
的距离。如果该距离小于或等于 1,则该点位于单位圆内。inside_circle
计算有多少个点落在圆内。inside_circle / num_samples
估计四分之一圆的面积。将此比率乘以 4 即可估算出 π,因为圆的实际面积为 πr²(r = 1),而正方形的面积为 1² = 1。这个例子是蒙特卡罗方法的简单演示。 π 估计的准确性随着样本数量的增加而提高。蒙特卡洛模拟可能更加复杂,可用于各种应用,从金融模型到难以或不可能获得分析解决方案的复杂物理模拟。