博客
关于我
1063 计算谱半径 (20 分)
阅读量:568 次
发布时间:2019-03-09

本文共 890 字,大约阅读时间需要 2 分钟。

1063 计算谱半径

为了解决这个问题,我们需要计算给定点集的谱半径。谱半径是所有点到原点的距离中的最大值。通过对给定的点坐标进行计算,我们可以找到这个最大距离,然后取其平方根作为最终结果。

### 输入样例 我们需要输入多组点的坐标,计算每组点的平方距离,然后找到最大的平方距离,其开平方即为谱半径。输入样例如下:

5
0 1
2
0 -1
-1
0 0
3
3 3
0
-3 0

### 输出样例 经过计算,可以得到最大谱半径为:

4.24

解题思路

  • 输入处理:读取输入数据,初始化最大值变量。
  • 数据处理:对每组点坐标计算其平方距离。
  • 比较与更新:如果当前计算的平方距离大于已记录的最大值,则更新最大值。
  • 结果输出:计算并输出最大谱半径。
  • 代码实现

    #include 
    #include
    using namespace std; int main() { int N, a, b, Max; // 从标准输入读取数据 cin >> N; cin >> a >> b; Max = a*a + b*b; // 已经读取了第一组数据,剩下的进行处理 while (--N) { cin >> a >> b; int Tmp = a*a + b*b; if (Tmp > Max) Max = Tmp; } // 计算并输出谱半径 sqrt(Max); return 0; }

    代码解释

    • 读取输入:首先读取点的数量N,然后读取每组点的坐标。
    • 初始化最大值:将第一组点的平方距离赋值给Max
    • 循环处理:从N-1开始循环,读取每组点的坐标,计算其平方距离,并与当前最大值比较,更新最大值。
    • 输出结果:打印最大谱半径,计算并显示其开平方后的值。

    通过以上步骤,我们可以轻松地计算出给定点的谱半径。这个方法简单直接,适合处理点集的谱半径问题。

    转载地址:http://zeipz.baihongyu.com/

    你可能感兴趣的文章
    OSG——选取和拖拽
    查看>>
    OSG中找到特定节点的方法(转)
    查看>>
    OSG学习:C#调用非托管C++方法——C++/CLI
    查看>>
    OSG学习:几何体的操作(一)——交互事件、简化几何体
    查看>>
    OSG学习:几何体的操作(二)——交互事件、Delaunay三角网绘制
    查看>>
    OSG学习:几何对象的绘制(一)——四边形
    查看>>
    OSG学习:几何对象的绘制(三)——几何元素的存储和几何体的绘制方法
    查看>>
    OSG学习:几何对象的绘制(二)——简易房屋
    查看>>
    OSG学习:几何对象的绘制(四)——几何体的更新回调:旋转的线
    查看>>
    OSG学习:场景图形管理(一)——视图与相机
    查看>>
    OSG学习:场景图形管理(三)——多视图相机渲染
    查看>>
    OSG学习:场景图形管理(二)——单窗口多相机渲染
    查看>>
    OSG学习:场景图形管理(四)——多视图多窗口渲染
    查看>>
    OSG学习:新建C++/CLI工程并读取模型(C++/CLI)——根据OSG官方示例代码初步理解其方法
    查看>>
    Sql 随机更新一条数据返回更新数据的ID编号
    查看>>
    OSG学习:空间变换节点和开关节点示例
    查看>>
    OSG学习:纹理映射(一)——多重纹理映射
    查看>>
    OSG学习:纹理映射(七)——聚光灯
    查看>>
    OSG学习:纹理映射(三)——立方图纹理映射
    查看>>
    OSG学习:纹理映射(二)——一维/二维/简单立方图纹理映射
    查看>>