1226: 等值数目

题目描述
已知两个整数数组f[]和g[],它们的元素都已经从小到大排列。例如f[]中可能有1,2,2,3,3,g[]中有1,2,2,2,3。
请写一个程序,算出这两个数组彼此之间有多少组相同的数据。就以上例而言:
f[0]于g[0]是第一组;
f[1]于g[1]是第二组;
f[2]于g[2]是第三组;
f[3]于g[4]是第四组。

输入
第一行为两个整数m, n(1≤m, n≤1000),分别代表数组f[], g[]的长度。
第二行有m个元素,为数组f[]。
第三行有n个元素,为数组g[]。

输出
输出等值数目。

样例输入 Copy
5 5
1 2 2 2 3
1 2 2 3 3
样例输出 Copy
4

#include<bits/stdc++.h>
using namespace std;
int main()
{
	int n,m;
	cin>>n>>m;
	int f[n],g[m],a[100000]={0},b[100000]={0};
	for(int i=0;i<n;i++)
	{
		cin>>f[i];
		a[f[i]]++;
	}
	for(int i=0;i<m;i++)
	{
		cin>>g[i];
		b[g[i]]++;
	}
	int count=0,min;
	for(int i=0;i<100000;i++)
	{
		min=a[i]<b[i]?a[i]:b[i];
		count+=min;
	}
	cout<<count<<endl;
	return 0;	
}
好的,我来给您讲解一下如何使用Matlab画出电偶极子的电位等值面及电场分布。 首先,我们需要了解电偶极子的电位分布和电场分布公式,假设电偶极子的两个电荷分别为q1和q2,它们分别位于坐标为(-d/2, 0, 0)和(d/2, 0, 0)的点上,那么电偶极子在(x, y, z)点的电势V和电场强度E分别为: V = k * (q1 / r1 - q2 / r2),其中r1 = sqrt((x + d/2)^2 + y^2 + z^2),r2 = sqrt((x - d/2)^2 + y^2 + z^2) E_x = -dV/dx = k * (q1 * (x + d/2) / r1^3 - q2 * (x - d/2) / r2^3) E_y = -dV/dy = k * (q1 * y / r1^3 - q2 * y / r2^3) E_z = -dV/dz = k * (q1 * z / r1^3 - q2 * z / r2^3) 其中,k为电场常数。 接下来,我们可以通过Matlab来实现电位等值面和电场分布的绘制。具体步骤如下: 1. 定义电荷量、电偶极子的位置和电场常数等参数。 2. 设定绘图的区域和分辨率,生成网格点坐标矩阵。 3. 根据电位公式计算每个网格点的电势值,利用contour函数画出等值面。 4. 根据电场公式计算每个网格点的电场强度,利用quiver3函数画出电场分布。 下面是一份Matlab代码示例: ```matlab % 定义参数 q1 = 1; % 电荷量 q2 = -1; d = 1; % 电偶极子的间距 k = 8.99e9; % 电场常数 % 设定绘图区域和分辨率 xmin = -2; xmax = 2; ymin = -2; ymax = 2; zmin = -2; zmax = 2; num = 20; % 网格点数目 x = linspace(xmin, xmax, num); y = linspace(ymin, ymax, num); z = linspace(zmin, zmax, num); [X, Y, Z] = meshgrid(x, y, z); % 计算电位分布 r1 = sqrt((X + d/2).^2 + Y.^2 + Z.^2); r2 = sqrt((X - d/2).^2 + Y.^2 + Z.^2); V = k * (q1 ./ r1 - q2 ./ r2); % 绘制电位等值面 figure; contour(X, Y, V(:, :, num/2), 20); % 绘制Z轴方向上的等值面 xlabel('x'); ylabel('y'); title('Electric Potential Contour'); % 计算电场分布 Ex = k * (q1 * (X + d/2) ./ r1.^3 - q2 * (X - d/2) ./ r2.^3); Ey = k * q1 * Y ./ r1.^3 - k * q2 * Y ./ r2.^3; Ez = k * q1 * Z ./ r1.^3 - k * q2 * Z ./ r2.^3; % 绘制电场分布 figure; quiver3(X, Y, Z, Ex, Ey, Ez); % 画出电场分布 xlabel('x'); ylabel('y'); zlabel('z'); title('Electric Field Distribution'); ``` 通过运行以上代码,您可以得到电位等值面和电场分布的图像。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值