当前位置: 首页 > 知识库问答 >
问题:

生成具有给定#个边和节点的随机图

文喜
2023-03-14

我想为给定数量的节点和边生成一个随机图。当我运行它时,它会返回一个包含所有零的edgelist(例如,如果我用五个节点和边运行它,它会返回五对零作为edgelist)。这部分代码是否有问题导致了这种情况?

public GraphEdgeList(int nNodes, int nEdges) {
    if (nNodes != 0){
        for (int i = 0; i < nEdges; i++){
            int u = (int) Math.random()* nNodes;
            int v = (int) Math.random()* nNodes;
            
            addEdge(u, v);
        }
    }
}

共有1个答案

屠钊
2023-03-14

很容易忘记执行命令的确切规则,比如

int u = (int) Math.random()* nNodes;

这是第一次计算数学。random()*nNodes,然后将结果截断为一个整数,或者首先是(int)数学。random(),然后将该整数与n个节点相乘?如果你不确定,用括号括起来,那么你就不必记住详细的规则:

int u = (int) (Math.random()* nNodes);

对于表达式,默认执行规则首先执行(int)Math.random()随机()结果是0和0.99999之间的小数值,将其转换为int总是给出零。用nNodes乘以它,它仍然是零——肯定不是你想的那样。

 类似资料:
  • 问题内容: 我有一个具有不同值的概率的文件,例如: 我想使用此分布生成随机数。是否存在处理此问题的现有模块?自己编写代码是很简单的(构建累积密度函数,生成随机值[0,1]并选择相应的值),但似乎这应该是一个常见问题,并且可能有人为它创建了一个函数/模块它。 我需要这个,因为我想生成一个生日列表(不遵循标准模块中的任何分布)。 问题答案: 可能就是你想要的。你可以通过values参数提供概率。然后,

  • 下面是我的函数最后的样子: 如果你想看看我在做什么,请看:http://www.sidequestsapps.com/projects/captotype/game.html

  • 第一次在StackOverflow。我希望有人能帮我搜索一个算法。 我需要在给定的范围内生成N个随机数,求和到给定的和! null 可以生成N个常数和的数,解模,像这样:生成和是常数的随机数,但我不能用范围来完成。 或者通过产生N个随机值,将它们求和,然后将常数和除以随机和,然后将每个随机数乘以这个商,就像这里提出的那样。 我不能采用这些解决方案的主要问题是,我的每个随机值都有不同的范围,我需要这

  • 所以我想生成一个有3个节点的随机网络。边缘必须在两个节点之间以特定的概率或强度随机分布。 选择具有以下概率的节点:节点1:0.6节点2:0.3节点3:0.1 我想多次这样做,因为这是时态数据的一部分。因此,在每个时间戳一个连接。 我用igraph在R中做这件事。但是急诊室模型做不到。 知道我该怎么做吗? 编辑:边是定向的。(注意:我是一名生物专业的学生,不是一名与网络打交道的铁杆人士。所以任何指导

  • 问题内容: 最重要的答案是建议使用switch语句来完成这项工作。但是,如果我要考虑的情况很多,那么代码看起来就很笨拙。我有一个巨大的switch语句,在每种情况下都一遍又一遍地重复非常相似的代码。 当您要考虑的概率很大时,是否有更好,更干净的方法来选择具有一定概率的随机数?(例如〜30) 问题答案: 这是一个Swift实现,受各种答案的影响很大,这些答案会生成具有给定(数字)分布的随机数 对于

  • 问题内容: 我想知道如何在两个给定值之间生成一个随机数。 我可以使用以下内容生成一个随机数: 但是,如何生成0到100(含)之间的随机数? 问题答案: 你可以使用例如 r.nextInt(101) 对于更通用的“在两个数字之间”,请使用: 这会为你提供介于10(含)和100(不含)之间的随机数