小编Rav*_*shi的帖子

如何添加两个BitSet

我正在寻找一种方法来添加两个BitSet.我应该去二进制数的基础知识,XORAND通过BitSet 执行和操作.正如基本所说 - 半加法器

这会有效吗?

java bitset

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

图中从单个源到单个目的地的最短路径

我的图不包含将顶点连接到自身的边。两个顶点之间只有一条边。从维基百科我了解了一些用于根据给定条件计算最短路径的算法。最著名的算法之一是Dijkstra's algorithm,它找到从源顶点到图中所有其他顶点的最短路径。
但是通过使用Dijkstra's algorithm,我没有必要探索所有顶点,但是我的目标只是找到从单一源到单一目的地的最短路径。我应该在这里使用哪种策略?这样我就不需要探索所有其他顶点。

我的方法之一是使用bidirectional bfs. 我的bidirectional bfs意思是应用两个,bfs一个来自source node,另一个来自destination node。一旦我第一次child在两棵树中找到相同的内容,我就可以停止两者bfs。现在从源到子union路径的路径从子到目的地将是我从源到目的地的最短路径。

但是,在 Wikipedia 和 描述的所有方法中 bidirectional bfs,哪一种最适合我的图表?

algorithm shortest-path

5
推荐指数
1
解决办法
3万
查看次数

在Java中查找多个HashSet of Integers中没有重复的所有元素

在多HashSetIntegers我想所有这些因素,其中有没有重复的.也就是说,它只在所有的联合中出现过一次HashSet.我无法以编程方式对其进行概念化.

例如,考虑set首先包含{2,4,6,8,9},第二个包含{2,8,9},第三个包含{2,4,8,9}.在所有这些集合中,元素6仅出现一次.

如何在Java中找到多个HashSet of Integers中没有重复的所有元素?

java set

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

在C#中一段时间​​后停止计时器

我想从时间t = 0到t = 10秒,以200ms的间隔重复执行一些操作。

目前,我正在跟踪变量中的经过时间。我觉得这不舒服。以下是代码-

using System;
using System.Timers;

class Program
{
    static int interval = 200; // 0.2 seconds or 200 ms
    static int totalTime = 10000; // 10 seconds or 10000 ms
    static int elapsedTime = 0; // Elapsed time in ms

    static Timer timer;

    static void Main(string[] args)
    {
        timer = new Timer(interval);
        timer.Elapsed += new ElapsedEventHandler(OnTimedEvent);
        timer.Enabled = true;

        Console.ReadKey(); // for checking
    }

    private static void OnTimedEvent(object source, ElapsedEventArgs e)
    {
        if (elapsedTime > …
Run Code Online (Sandbox Code Playgroud)

c# timer

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

在 PCL 可视化工具中打印所选点的 3D 坐标

我正在尝试使用 PCL 打印所选点的 3D 坐标。下面是代码:

#include <iostream>
#include <pcl/io/io.h>
#include <pcl/io/pcd_io.h>
#include <pcl/visualization/pcl_visualizer.h>

using namespace std;

void pointPickingEventOccurred (const pcl::visualization::PointPickingEvent& event, void* viewer_void)
{
  std::cout << "[INOF] Point picking event occurred." << std::endl;

  float x, y, z;
  if (event.getPointIndex () == -1)
  {
     return;
  }
  event.getPoint(x, y, z);
  std::cout << "[INOF] Point coordinate ( " << x << ", " << y << ", " << z << ")" << std::endl;
}

int main (int argc, char** argv)
{
    pcl::visualization::PCLVisualizer …
Run Code Online (Sandbox Code Playgroud)

c++ point-cloud-library

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

在协议缓冲区消息文件中定义 uint8_t 变量

我想在Protocol Buffers 中定义一个 Point 消息,它表示 3 维空间中的 RGB 彩色点。

message Point {
    float x   = 1;
    float y   = 2;
    float z   = 3;
    uint8_t r = 4;
    uint8_t g = 5;
    uint8_t b = 6;
}
Run Code Online (Sandbox Code Playgroud)

这里,x, y, z变量定义了 Point 的位置并r, g, b定义了 RGB 空间中的颜色。

由于uint8_t没有在 Protocol Buffers 中定义,我正在寻找一种解决方法来定义它。目前,我正在使用uint32代替uint8_t.

protocol-buffers

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

在 PCL 中从无组织的点云生成图像

我有一个无组织的场景点云。下面是点云的截图——

点云的截图

我想从这个点云合成一个图像。下面是代码片段——

#include <iostream>
#include <pcl/io/pcd_io.h>
#include <pcl/point_types.h>
#include <opencv2/opencv.hpp>

int main(int argc, char** argv)
{
    pcl::PointCloud<pcl::PointXYZRGBA>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZRGBA>);
    pcl::io::loadPCDFile("file.pcd", *cloud);

    cv::Mat image = cv::Mat(cloud->height, cloud->width, CV_8UC3);
    for (int i = 0; i < image.rows; i++)
    {
        for (int j = 0; j < image.cols; j++)
        {
            pcl::PointXYZRGBA point = cloud->at(j, i);
            image.at<cv::Vec3b>(i, j)[0] = point.b;
            image.at<cv::Vec3b>(i, j)[1] = point.g;
            image.at<cv::Vec3b>(i, j)[2] = point.r;
        }
    }
    cv::imwrite("image.png", image);

    return (0);
}
Run Code Online (Sandbox Code Playgroud)

可以在此处找到 PCD 文件。上面的代码在运行时抛出以下错误-

terminate called after throwing …
Run Code Online (Sandbox Code Playgroud)

c++ point-cloud-library

5
推荐指数
2
解决办法
6363
查看次数

使补丁更大用作 matplotlib 中的图例

我正在matplotlib使用from matplotlib.patches import Patch类在图中添加补丁。请参阅下面的示例代码-

import matplotlib
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Patch

n = 5
hatch_1 = 'o'
hatch_2 = '.'
opacity = 0.4
bar_width = 0.4

y = np.random.randint(low=0, high=10, size=n)
x = np.arange(n)

bars = plt.bar(x, y, bar_width, align='center',  alpha=opacity, fill=False)
for bar in bars:
    bar.set_hatch(hatch_1)

y = np.random.randint(low=0, high=10, size=n)
bars = plt.bar(x + bar_width, y, bar_width,
               align='center',  alpha=opacity, fill=False)
for bar in bars:
    bar.set_hatch(hatch_2)

patch_1 = …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

如何在 torch 中创建 nn.Sequential 的副本?

我正在尝试创建nn.Sequential网络的副本。例如,以下是执行相同操作的最简单方法 -

net = nn.Sequential(
        nn.Conv2d(16, 32, 3, stride=2),
        nn.ReLU(),
        nn.Conv2d(32, 64, 3, stride=2),
        nn.ReLU(),
    )

net_copy = nn.Sequential(
        nn.Conv2d(16, 32, 3, stride=2),
        nn.ReLU(),
        nn.Conv2d(32, 64, 3, stride=2),
        nn.ReLU(),
    )
Run Code Online (Sandbox Code Playgroud)

然而,重新定义网络就没那么好了。我尝试了以下方法,但没有成功-

  1. net_copy = nn.Sequential(net):在这种方法中,似乎net_copy只是一个共享指针net
  2. net_copy = nn.Sequential(*net.modules()):在这种方法中,net_copy包含更多层。

最后,我厌倦deepcopy了以下方法,效果很好-

net_copy = deepcopy(net)
Run Code Online (Sandbox Code Playgroud)

但是,我想知道这是否是正确的方法。我认为这很好,因为它有效。

python neural-network pytorch

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

在C#中使用枚举

由于我的游戏有一些模式(应该在初始化时提供),所以我想为它创建一个枚举.后来我想得到这个枚举的价值.以下是我的代码 -

enum GameMode : short
{
    Stop = 0,
    StartSinglePlayer = 4,
    StartMultiPlayer = 10,
    Debug = 12
}
class Game
{
    static short GetValue(GameMode mode)
    {
        short index = -1;
        if (mode == GameMode.Stop)
            index = 0;
        else if (mode == GameMode.StartSinglePlayer)
            index = 4;
        else if (mode == GameMode.StartMultiPlayer)
            index = 10;
        else if (mode == GameMode.Debug)
            index = 12;
        return index;
    }
    static void Main(string[] args)
    {
        var value = GetValue(GameMode.StartMultiPlayer);
    }
}
Run Code Online (Sandbox Code Playgroud)

我很想知道一个更好的方法来做同样的事情,如果存在的话.

c# enums

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