我试图测试特定数据集群偶然发生的可能性.一种强有力的方法是蒙特卡罗模拟,其中数据和组之间的关联被随机重新分配很多次(例如10,000),并且使用聚类度量来比较实际数据与模拟以确定ap值.
我已经完成了大部分工作,使用指针将分组映射到数据元素,因此我计划随机重新分配指向数据的指针.问题:在没有替换的情况下采样的快速方法是什么,以便在复制数据集中随机重新分配每个指针?
例如(这些数据只是一个简化的例子):
数据(n = 12值) - A组:0.1,0.2,0.4/B组:0.5,0.6,0.8/C组:0.4,0.5/D组:0.2,0.2,0.3,0.5
对于每个复制数据集,我将具有相同的簇大小(A = 3,B = 3,C = 2,D = 4)和数据值,但会将值重新分配给簇.
为此,我可以生成1-12范围内的随机数,分配A组的第一个元素,然后生成1-11范围内的随机数,并分配A组中的第二个元素,依此类推.指针重新分配很快,我将预先分配所有数据结构,但没有替换的采样似乎是一个可能已经解决过很多次的问题.
逻辑或伪代码首选.
有谁知道如何做到这一点以及伪代码会是什么样子?
众所周知,哈希表存储键,值对,并且当一个键被调用时,该函数将返回与该键相关联的值.我想要做的是理解创建映射函数的底层结构.例如,如果我们生活在除了数组之外没有先前定义的函数的世界中,我们怎么能复制我们今天拥有的Hashmaps?
我真的很感激,如果曾经处理过Fortune算法生成Delaunay三角剖分的人给我提供了一个相当低级别的算法伪代码!我在维基百科上阅读了一个,但它有点令人困惑,看起来很高级,我能找到的任何代码都有原始的C实现的不便.
我想用C++实现它,但是以某种方式生成的输出是我将要使用的(我自己的)类(顶点,边和三角形作为对象).所以我需要了解所有内容并从头开始实施.
我还阅读了算法的描述,我知道它的作用和方式,但现在仍然是抽象的.但是,我也很高兴在(实现)细节中有类似的描述,它不必像代码一样!
在游戏中工作并且在游戏中的某一点上玩家被投入奖励游戏.他们需要获得的金额是预先确定的,但是我们想要提出一种算法,该算法使用加法,乘法和除法来获得x个步骤中的数量.步骤的数量也会提前知道,因此算法只需要弄清楚如何使用这些步骤来达到数字.
您可以使用的唯一计算是+1到+ 15,x2,x4,/ 2,/ 4.您可以在步骤中超过目标编号,但必须以最后一步的目标编号结束.步数通常在15到30之间,您始终从0开始.
例如:数量:100,步数:10 == + 10,+ 2,x2,+ 4,x4,+ 10,/ 2,+ 15,+ 15,+ 9
金额:40,步数:12 == + 15,+ 1,+ 5,+ 2,+ 1,/ 2,*4,+ 6,+ 6,/ 4,+ 5,*2
我很好奇是否有这样的东西可能已经存在?我确信我们可以拿出一些东西,但如果有一个可以处理这项工作的通用算法,我不想重新发明轮子.
更新:对@FryGuy的代码进行了一些小的更改,使其成为一个随机达到目标数量所需的路线.他的解决方案原样很有效,但在看到它工作并考虑到@Argote和@Moron的评论之后,我意识到需要在其中进行一定程度的随机化以使其吸引我们的玩家.在10个步骤中添加了+1以达到目标数量10个作品,但就我们如何使用它而言是"无聊".非常感谢所有评论和回答的人.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace CR
{
class Program
{
static void Main(string[] args)
{
while (true)
{
int targetNumber = 20;
int steps = 13;
int[] route = null;
Boolean routeAcceptable = false;
// Continue choosing routes until we find one that is acceptable …Run Code Online (Sandbox Code Playgroud) 我正在寻找Object.hashCode()的算法.
此代码在Object.java中是本机代码.
这是因为
(a)代码在汇编中 - 从来没有在Java或任何其他HLL中
要么
(b)根本没有披露
?
在任何一种情况下,我都希望得到"如何计算hashCode()的算法(伪代码或一些详细解释)" - 它的计算中的参数和计算本身是什么?
请注意:这是 我正在寻找的Object的hashCode() -而不是像String或hashMap/table那样的.
// ================================================ ==========================
在新的Java文档 - JDK 8现在说
"The value returned by hashCode() is the object's hash code, which is the object's memory address in hexadecimal."
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用igraph和实现单变量网络数据的分类工具包python.
但是,我的问题实际上更多的是关系分类领域的算法问题,而不是编程.
我很难理解本文所指的" 网络唯一贝叶斯分类器 "(NBC),它是本文中解释的关系分类器之一.
我之前Naive Bayes使用单词包特征表示实现了文本数据的分类器.Naive Bayes关于文本数据的想法在我的脑海中清晰可见.
我认为这种方法(NBC)是将相同的想法简单地翻译成关系分类区域.但是,我对方程中使用的符号感到困惑,所以我无法弄清楚发生了什么.我也有在纸中使用的符号的一个问题在这里.
NBC 在论文的第14页有解释,

摘要:
我需要在第14页的论文中解释的" 仅网络贝叶斯分类器 "(NBC)的伪代码.
伪码表示法:
vs图中的顶点列表.len(vs)是长度.vs[i]是第i个顶点.vs[i].class或者是0或者1没有节点的其他给定特征.v我们试图预测v.neighbors()的顶点,并且是邻居的顶点列表v.1.现在,我需要伪代码:
def NBC(vs, v):
# v.class is 0 or 1
# v.neighbors is list of neighbor vertices
# vs is the …Run Code Online (Sandbox Code Playgroud) 当您开始一个新项目时,您如何计划它或需要多长时间?
伪?流程图?
你是否试着提前考虑所有课程?
TBH,我从不计划任何事情.当我遇到问题时,我会直截了当地思考解决方案.主要是因为我提前几次尝试计划,我总是会忘记一些重要的事情,因此规划的逻辑将是有缺陷的.
我有这个数组:
int [] myarray = {17, 6, 8};
Run Code Online (Sandbox Code Playgroud)
在伪代码中对这个数组进行排序的最佳方法是什么?
谢谢!
例如: int A[] = {3,2,1,2,3,2,1,3,1,2,3};
如何有效地排序这个数组?
这是面试,我只需要一个伪代码.
我正在准备采访,我正在努力记住Heap的算法:
procedure generate(n : integer, A : array of any):
if n = 1 then
output(A)
else
for i := 0; i < n; i += 1 do
generate(n - 1, A)
if n is even then
swap(A[i], A[n-1])
else
swap(A[0], A[n-1])
end if
end for
end if
Run Code Online (Sandbox Code Playgroud)
该算法非常着名,可以生成排列.它简洁快速,与代码密切配合,生成组合.
问题是:我不喜欢记住事情,我总是试图让概念在以后"推断"算法.
这个算法真的不直观,我找不到解释它如何对我自己起作用的方法.
有人可以告诉我为什么以及如何在生成排列时该算法按预期工作?
pseudocode ×10
algorithm ×7
sorting ×2
arrays ×1
flowchart ×1
hashcode ×1
hashtable ×1
igraph ×1
java ×1
naivebayes ×1
optimization ×1
permutation ×1
statistics ×1