小编ari*_*152的帖子

将类似的盒子分组

我有一组(X,Y)坐标,它将单位正方形划分为子矩形.假设我的坐标是 -

         (    x1,    y1)    (    x2,    y2)      

         (0.0000,0.0000)    (0.3412,0.4175)   
         (0.7445,0.0000)    (1.0000,0.6553)   
         (0.7445,0.6553)    (1.0000,1.0000)   
         (0.0000,0.6553)    (0.7445,1.0000)   
         (0.3412,0.0000)    (0.7445,0.4175)   
         (0.3412,0.4175)    (0.7445,0.6553)   
         (0.0000,0.4175)    (0.3412,0.6553)....etc (total 10,000 coordinates)
Run Code Online (Sandbox Code Playgroud)

作为一个例子,我只采集了16组数据,这些坐标分割我的方块,如下所示 -

在此输入图像描述

类似框的定义

具有相似数量的邻居的那些盒子被认为是类似的盒子.对于方框[8]上方的图像,方框[13]等有4个最近邻居.所以他们被认为是类似的盒子.

下面的图片应该清楚 -

在此输入图像描述

::我的问题::

从图像我们可以看到 -

对于方框[8],最近的方框是:

box(1)(有4个邻居)

框[4](也有4个邻居)

盒子[14](有4个邻居)

盒子[16](有4个邻居)

因此,在这种情况下,最近框的邻居之和= 4 + 4 + 4 + 4 = 16

再次为箱[13]最近的框是:

框[3](有6个邻居)

框[5](也有4个邻居)

盒子[6](有3个邻居)

框[12](有3个邻居)

因此,在这种情况下,最近框的邻居之和= 6 + 4 + 3 + 3 = 16

在这里,(类似框)框[8]和框[13] = 16 …

c++ algorithm

7
推荐指数
1
解决办法
299
查看次数

计算相邻框的数量

假设我有一组(X,Y)坐标为1000个盒子.

         (    x1,    y1)    (    x2,    y2)      Area

         (0.0000,0.0000)    (0.3412,0.4175)    0.1424
         (0.7445,0.0000)    (1.0000,0.6553)    0.1674
         (0.7445,0.6553)    (1.0000,1.0000)    0.0881
         (0.0000,0.6553)    (0.7445,1.0000)    0.2566
         (0.3412,0.0000)    (0.7445,0.4175)    0.1684
         (0.3412,0.4175)    (0.7445,0.6553)    0.0959
         (0.0000,0.4175)    (0.3412,0.6553)    0.0812 ....etc
Run Code Online (Sandbox Code Playgroud)

我想用c/c ++计算每个盒子相邻盒子的数量.我该怎么做?

例

在此输入图像描述

在这张图片中,方框7的相邻方框总数为6,方框3为3.如何使用c ++计算它们?

使用新值进行编辑和更新

让我们尝试16个值 -

1   0.0000   0.0000      0.8147   0.1355  
2   0.8147   0.0000      1.0000   0.1355  
3   0.8147   0.1355      0.9058   0.8350  
4   0.0000   0.1355      0.1270   0.9689  
5   0.9058   0.1355      0.9134   0.2210  
6   0.9058   0.8350      1.0000   1.0000  
7   0.8147   0.8350      0.9058   1.0000  
8   0.1270   0.1355      0.6324   0.3082  
9   0.1270 …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm simulation rectangles

6
推荐指数
1
解决办法
624
查看次数

最近的盒子的面积

这个问题类似于我之前提出的这个问题.但是我想找到相应盒子的区域,而不是只返回最近的盒子数量.

细节: 假设我有一组像这样的盒子坐标 -

#Rect    x1      y1          x2       y2         area

1     0.0000   0.0000      0.8147   0.1355      0.1104
2     0.8147   0.0000      1.0000   0.1355      0.0251
3     0.8147   0.1355      0.9058   0.8350      0.0637
4     0.0000   0.1355      0.1270   0.9689      0.1058
5     0.9058   0.1355      0.9134   0.2210      0.0006
6     0.9058   0.8350      1.0000   1.0000      0.0155
7     0.8147   0.8350      0.9058   1.0000      0.0150
8     0.1270   0.1355      0.6324   0.3082      0.0873
9     0.1270   0.9689      0.8147   1.0000      0.0214
10    0.0000   0.9689      0.1270   1.0000      0.0040
11    0.9134   0.1355      1.0000   0.2210      0.0074
12    0.9134 …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm

6
推荐指数
1
解决办法
193
查看次数

具有相似索引的值的总和

假设我在一个文本文件中有一组1000个统计数据.其第一列表示索引的数量,第二列表示该值的值.索引可以重复,相应的值可以不同.我想计算索引的出现次数和每个索引的值的总和.

我编写了一个代码,它给出了索引出现的结果,但它没有给出相应的值总和.

例

假设我的文本文件有一组这样的数据 -

#index   value
  4      0.51
  5      0.13
  5      0.53
  5      0.25
  6      0.16
  6      0.16
  7      0.38
  4      0.11
  3      0.101
  4      0.32
  4      0.2 ... and more
Run Code Online (Sandbox Code Playgroud)

所以在这种情况下 -

指数4 出现 4次,相应的值之和 =(0.51 + 0.11 + 0.32 + 0.2)= 1.14

同样

指数5 出现 2次,值之和 =(0.13 + 0.53)= 0.66等.

我的守则

这是我的代码 -

#include <iostream>
#include <map>
#include <fstream>

using namespace std;


int main()
{
    map<double,double>   index;
    double  number,value;
    double total;


    ifstream theFile ("a1.txt");
    while(theFile …
Run Code Online (Sandbox Code Playgroud)

c++ io c++11

1
推荐指数
1
解决办法
210
查看次数

标签 统计

c++ ×4

algorithm ×3

c++11 ×1

io ×1

rectangles ×1

simulation ×1