高斯定理的证明(三重积分的C/C++实现)(C++)(大学物理)

本文介绍了如何使用C++实现高斯定理,特别是通过结构体Vec实现多元向量值积分。重点讲解了内联函数的使用技巧,以及std::前缀在C++标准库中的作用,强调了命名空间在解决命名冲突问题上的重要性。此外,还提及了一个名为init_eletrons()的函数,但未详细展开。
摘要由CSDN通过智能技术生成

特别鸣谢:无私帮助我的ycc同学

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <corecrt_math_defines.h>

const int max_eletrons = 256;

struct Eletrons {
   
	double x, y, z, q;
} eletrons[max_eletrons];
int num_eletrons = 0;
double rand_double() {
   
	return double(rand()) / 65536.0;
}
void init_eletrons(int range_min, int range_max) {
   
	srand((unsigned)time(0));
	num_eletrons = range_min + rand() % (range_max - range_min);
	for (int i = 0; i < num_eletrons; i++) {
   
		eletrons[i] = {
    rand_double(), rand_double(), rand_double(), rand_double() * 100.0 };
	}
}
struct Vec {
   
	double x, y, z;

	inline Vec operator + (Vec const& r) const {
    return {
    x + r.x, y + r.y, z + r.z }; }
	inline Vec operator - (Vec const& r) const {
    return {
    x - r.x, y - r.y, z - r.z }; }
	inline Vec operator * (double const& s) const {
    return {
    x * s, y * s, z * s }; }
	inline double dot(Vec const& r) const {
    return x * r.x + y * r.y + z * r.z; }
	inline double length2() const {
    return dot(*this); }
	inline double length() const {
    return std::sqrt(length2()); }
	inline double distance(Vec const& r) const {
    return (*this - r).length(); }
	inline Vec normalize() const {
    auto len = length();  return {
    x / len, y / len, z / len }; }
};

const double pi = M_PI;
//const double eps0 = 8.854187817 * 1e-12f
const double eps0 = 1;
const double k = 1 / (4 * pi * eps0);


double integral_dS(Vec const& pos, Vec const& normal) {
   
	double sum = 0.0;
	for (int i = 0; i < num_eletrons; ++i) {
   
		Eletrons e = eletrons[i];
		Vec dir = pos - Vec{
    e.x, e.y, e.z };
		sum += dir.normalize().dot
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值