先上代码
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
// 获取开始时间
long startTime = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000;
// 单个小正方形的面积
double cellArea = (8.0 / 100000.0) * (4.0 / 50000.0);
// 计算的结果
double result = 0.0;
// 这一份的真实坐标
double xCoordinate;
double yCoordinate;
for (int x = 0; x < 100000; x++)
{
for (int y = 0; y < 50000; y++)
{
// 这一份的真实坐标
xCoordinate = ((double)x / 100000.0) * 8.0;
yCoordinate = ((double)y / 50000.0) * 4.0;
// 判断,符合要求则计入面积
if (xCoordinate <= 4.0 && (yCoordinate / xCoordinate) <= 0.5 && ((xCoordinate - 4.0) * (xCoordinate - 4.0) + (yCoordinate - 4.0) * (yCoordinate - 4.0) >= 16.0))
{
result += cellArea;
}
}
}
// 获取结束时间
long endTime = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000;
Console.WriteLine("程序运行时间: " + (endTime - startTime) + "ms");
Console.WriteLine("阴影部分的面积是: " + result);
Console.ReadKey();
}
}
}
// .net core 3.1
// 程序运行时间: 18066ms
// 阴影部分的面积是: 1.2521836164419113
这段代码用于计算阴影部分的面积
运行结果是:
- 程序运行时间: 17991ms
- 阴影部分的面积是: 1.2521836164419113
把代码改成这样,连续跑20次,会不会越来越快呢?
using System;
namespace ConsoleApp1
{
class Program
{
static void Main(string[] args)
{
for (int cishu = 1; cishu < 21; cishu++)
{
// 获取开始时间
long startTime = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000;
// 单个小正方形的面积
double cellArea = (8.0 / 100000.0) * (4.0 / 50000.0);
// 计算的结果
double result = 0.0;
// 这一份的真实坐标
double xCoordinate;
double yCoordinate;
for (int x = 0; x < 100000; x++)
{
for (int y = 0; y < 50000; y++)
{
// 这一份的真实坐标
xCoordinate = ((double)x / 100000.0) * 8.0;
yCoordinate = ((double)y / 50000.0) * 4.0;
// 判断,符合要求则计入面积
if (xCoordinate <= 4.0 && (yCoordinate / xCoordinate) <= 0.5 && ((xCoordinate - 4.0) * (xCoordinate - 4.0) + (yCoordinate - 4.0) * (yCoordinate - 4.0) >= 16.0))
{
result += cellArea;
}
}
}
// 获取结束时间
long endTime = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) / 10000;
Console.WriteLine("------------------------");
Console.WriteLine("第" + cishu + "次运行");
Console.WriteLine("程序运行时间: " + (endTime - startTime) + "ms");
Console.WriteLine("阴影部分的面积是: " + result);
//Console.ReadKey();
}
Console.ReadKey();
}
}
}
// .net core 3.1
// 程序运行时间: 18066ms
// 阴影部分的面积是: 1.2521836164419113
运行结果是:
第1次运行
程序运行时间: 17876ms
阴影部分的面积是: 1.2521836164419113
第2次运行
程序运行时间: 17840ms
阴影部分的面积是: 1.2521836164419113
第3次运行
程序运行时间: 17854ms
阴影部分的面积是: 1.2521836164419113
第4次运行
程序运行时间: 17829ms
阴影部分的面积是: 1.2521836164419113
第5次运行
程序运行时间: 17839ms
阴影部分的面积是: 1.2521836164419113
第6次运行
程序运行时间: 17848ms
阴影部分的面积是: 1.2521836164419113
第7次运行
程序运行时间: 17825ms
阴影部分的面积是: 1.2521836164419113
第8次运行
程序运行时间: 17834ms
阴影部分的面积是: 1.2521836164419113
第9次运行
程序运行时间: 17831ms
阴影部分的面积是: 1.2521836164419113
第10次运行
程序运行时间: 17829ms
阴影部分的面积是: 1.2521836164419113
第11次运行
程序运行时间: 17806ms
阴影部分的面积是: 1.2521836164419113
第12次运行
程序运行时间: 17792ms
阴影部分的面积是: 1.2521836164419113
第13次运行
程序运行时间: 17808ms
阴影部分的面积是: 1.2521836164419113
第14次运行
程序运行时间: 17842ms
阴影部分的面积是: 1.2521836164419113
第15次运行
程序运行时间: 17828ms
阴影部分的面积是: 1.2521836164419113
第16次运行
程序运行时间: 17849ms
阴影部分的面积是: 1.2521836164419113
第17次运行
程序运行时间: 17833ms
阴影部分的面积是: 1.2521836164419113
第18次运行
程序运行时间: 17843ms
阴影部分的面积是: 1.2521836164419113
第19次运行
程序运行时间: 17840ms
阴影部分的面积是: 1.2521836164419113
第20次运行
程序运行时间: 17845ms
阴影部分的面积是: 1.2521836164419113
观察可得:速度几乎没区别
测试环境:
- .Net版本:6.0
- CPU:intel i5-8400
- 内存:16GB
- 开发工具:Microsoft Visual Studio Professional 2022 (64 位)
- OS:Windows 10 21H2 X64