小编RBa*_*ung的帖子

枚举标志超过2 ^ 32

我在我的应用程序中使用Enum标志.Enum可以有大约50个以上的值,因此值可以达到2 ^ 50.我只是想知道,我可以用它Math.Pow(2, variable)来计算这些吗?

当我尝试这样做时,我得到一个恒定值的编译时错误.有没有其他方法,除了手动计算2的这些权力并将其放入?

这就是我在做的事情:

[Flags]
internal enum RiskStates : long
    {
        None = 0,
        AL = Convert.ToInt64(Math.Pow(2,0)),
        AK = 2,
        AZ = 4,
        AR = 8,
        CA = 16,
        CO = 32,
        CT = 64,
        DC = 128,
        DE = 256,
        FL = 512,
        GA = 1024,
        HI = 2048,
        ID = 4096,
        IL = 8192,
        IN = 16384,
        IA = 32768,
        KS = 65536,
        KY = 131072,
        LA = 262144,
        ME = 524288, …
Run Code Online (Sandbox Code Playgroud)

c# enums flags

67
推荐指数
2
解决办法
3789
查看次数

Excel range.Rows属性真的有用吗?

好的,我正在为一个遗留的Excel-VBA应用程序完成一个附加项目,我再一次遇到了神秘范围的难题.Rows(?)和worksheet.Rows属性.

有谁知道这些属性真正做了什么以及它们应该为我提供什么?(注意:所有这些可能也适用于相应的*.Columns属性).

我真的希望能够使用它是返回一系列行,如下所示:

   SET rng = wks.Rows(iStartRow, iEndRow)
Run Code Online (Sandbox Code Playgroud)

但是我从来没有能够做到这一点,即使Intellisense为它显示了两个参数.相反,我必须使用其他两种(非常kludgy)技术中的一种.

帮助是非常无益的(对于Office VBA通​​常如此),并且对于"Rows"的Google搜索并不是非常有用,无论我添加了多少其他术语.

我能够使用它的唯一的事情是1)返回单行作为范围(rng.Rows(i))和2)返回范围(rng.Rows.Count)中的行的计数.是吗?真的没有别的东西吗?

澄清:我知道它会返回一个范围,并且还有其他方法可以获得一系列行.我要求的具体是我们从.Cells()和.Range()得到的.Rows()得到了什么?我知道的两件事是1)返回单行范围的简单方法和2)计算范围内行数的方法.

还有别的事吗?

excel vba ole-automation excel-vba

59
推荐指数
4
解决办法
15万
查看次数

多次使用一个CTE

我有这个,我在设定总数时得到一个错误.为什么我不能多次访问cte?

ALTER PROCEDURE [dbo].[GetLeaguePlayers]
(
    @idleague int,
    @pageNumber int,
    @pageSize int,
    @total int OUTPUT
)
AS
WITH CTEPlayers AS
(
    SELECT ROW_NUMBER() OVER (ORDER BY p.Name) AS RowNumber, p.Id, p.Name, t.Name AS Team
    FROM Players p INNER JOIN Teams t ON p.IdTeam=t.Id INNER JOIN Leagues l ON l.Id=t.IdLeague
    WHERE l.Id=@idleague
)
SELECT Id, Name
FROM CTEPlayers c
WHERE RowNumber>@pageSize*(@pageNumber-1) AND RowNumber<@pageSize*@pageNumber;
SET @total = ( SELECT COUNT(*) FROM CTEPlayers )
Run Code Online (Sandbox Code Playgroud)

sql sql-server common-table-expression sql-server-2008

51
推荐指数
4
解决办法
6万
查看次数

俯仰检测的倒谱分析

我正在寻找从声音信号中提取音高.

IRC上的某个人刚刚向我解释了如何采用双FFT实现这一目标.特别:

  1. 采取FFT
  2. 取绝对值平方的对数(可以用查找表完成)
  3. 采取另一个FFT
  4. 取绝对值

我正在尝试使用vDSP

我无法理解我之前没有遇到过这种技术.我做了很多狩猎和提问; 几周值得.更重要的是,我无法理解为什么我没有想到它.

我试图用vDSP库实现这一目标.它看起来好像有处理所有这些任务的功能.

但是,我想知道最终结果的准确性.

我之前使用的技术是将单个FFT的频率区域扫描为局部最大值.当它遇到一个时,它使用一种狡猾的技术(自上次FFT以来的相位变化)来更准确地将实际峰值放置在箱内.

我担心这种精确度会因为我在这里介绍的技术而丢失.

我想这种技术可以在第二次FFT之后使用,以准确地得到基波.但有点看起来信息在第2步中丢失了.

由于这是一个潜在的棘手过程,有经验的人可以只看一下我正在做的事情并检查它的理智吗?

此外,我听说有一种替代技术涉及在相邻的箱子上安装二次方.这是否具有可比性?如果是这样,我会赞成它,因为它不涉及记住bin阶段.

所以,问题:

  • 这种方法有意义吗?可以改进吗?
  • 我有点担心"log square"组件; 似乎有一个vDSP函数可以做到这一点:vDSP_vdbcon.但是,没有迹象表明它会预先计算日志表 - 我认为它不会,因为FFT函数需要调用显式预计算函数并将其传递给它.而这个功能没有.
  • 是否存在拾取谐波的危险?
  • 是否有任何狡猾的方式使vDSP拉出最大值,最大的第一?
  • 有人能指出我对这种技术的一些研究或文献吗?

  • 主要问题:它足够准确吗?可以提高准确度吗?一位专家刚刚告诉我,准确性是不充分的.这是行的结束吗?

PS当我想创建标签时,我很生气,但不能.:| 我已向维护人员建议SO跟踪尝试的标签,但我确信我被忽略了.我们需要vDSP标签,加速框架,倒谱分析

signal-processing fft detection pitch vdsp

30
推荐指数
3
解决办法
2万
查看次数

Mathematica:Unevaluated vs Defer vs Hold vs HoldForm vs HoldAllComplete vs etc等

我被搞糊涂了所有内置在声称为防止评价在某种程度上数学函数:Unevaluated,Defer,Hold,以及超过一半的形式的打Hold*.Mathematica文档只是单独解释了每个函数,但没有解释为什么要选择其中一个函数.任何人都可以对所有这些功能提供一致的解释吗?整件事对我来说似乎是一个令人费解的混乱.将它全部与Lisp宏相关可能是一个很好的起点.

大多数Mathematica语言都设计得非常好,但看起来Wolfram真的把自己描绘成了这方面的一个角落.或者我可能会遗漏一些东西.

lisp macros wolfram-mathematica language-design

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

SP需要15分钟,但执行时查询相同的结果会在1-2分钟内返回结果

所以基本上我有这个相对较长的存储过程.基本的执行流程是将SELECTS INTO一些数据导入临时表#,然后用符号声明,然后在这些表中运行游标,生成一个'running total'到第三个临时表中,该表是使用CREATE.然后,这个生成的临时表与DB中的其他表连接,以在一些分组等之后生成结果.问题是此SP一直运行良好,直到现在返回结果1-2分钟.现在突然间需要12-15分钟.如果我从SP中提取查询并通过手动设置相同的参数在管理工作室中执行它,它会在1-2分钟内返回结果,但SP需要很长时间.知道会发生什么.我试图生成Query和SP的实际执行计划但由于光标而无法生成它.任何想法为什么SP需要这么长时间查询不?

sql sql-server stored-procedures sql-server-2005 parameter-sniffing

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

在SELECT DISTINCT中消除NULL的最简单方法是什么?

我正在处理一个与以下内容非常类似的查询:

CREATE TABLE #test (a char(1), b char(1))

INSERT INTO #test(a,b) VALUES 
('A',NULL),
('A','B'),
('B',NULL),
('B',NULL)

SELECT DISTINCT a,b FROM #test

DROP TABLE #test
Run Code Online (Sandbox Code Playgroud)

结果是,毫不奇怪,

a   b
-------
A   NULL
A   B
B   NULL
Run Code Online (Sandbox Code Playgroud)

我希望实际看到的输出是:

a   b
-------
A   B
B   NULL
Run Code Online (Sandbox Code Playgroud)

也就是说,如果列在某些记录中有值但在其他记录中没有,我想抛出该列为NULL的行.但是,如果列的所有记录都具有NULL值,我想保留该NULL.

在单个查询中执行此操作的最简单/最优雅的方法是什么?

我觉得如果我在周五下午没有筋疲力尽,这将很简单.

sql sql-server

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

挑战,如何实现六度分离算法?

用户A,用户B,用户C-UserD-UserF

通过' - '连接的用户互相认识.

我需要一个算法来完成这两项任务:

  1. 计算从UserX到UserY的路径
  2. 对于UserX,计算距离不超过3步的所有用户.

有效的解决方案吗?

编辑

我的目的不是证明它是对还是错,而是在必要时实时计算结果.

另外,我认为最具表现力的方式是代码,甚至是伪代码.

再次编辑

我已经决定这种工作必须在数据库内完成,所以它必须是一个sql解决方案!

sql algorithm performance

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

在现有目录中创建项目/解决方案?

如何在同一个现有目录中创建新项目和解决方案?无论我做什么,它都会不断为项目创建一个新的(子)目录,并填充该目录而不是已存在的目录.我清除了"为解决方案创建目录"复选框,以便将解决方案放在同一文件夹中,而不是创建解决方案文件夹,但它仍然会生成项目子文件夹.

我怎样才能解决这个问题?!?

这已经困扰了我很长一段时间,但我已经能够忽略它或直到现在才解决它.但现在它正在我的客户项目中榨取我的屁股生产力,我需要解决它.感谢...... RBarryYoung

(注意:这是VS2005,面向软件开发人员的团队版)

ide visual-sourcesafe visual-studio-2005 visual-studio

20
推荐指数
2
解决办法
2万
查看次数

如何有效地计算移动标准差

下面你可以看到我的C#方法来计算每个点的布林带(移动平均线,上行带,下行带).

如您所见,此方法使用2 for循环来计算移动平均值的移动标准偏差.它曾经包含一个额外的循环来计算过去n个时期的移动平均值.我可以通过在循环开始时将新的点值添加到total_average并删除循环结束时的i-n点值来删除.

我现在的问题基本上是:我可以用移动平均线管理的类似方式删除剩余的内部循环吗?

    public static void AddBollingerBands(SortedList<DateTime, Dictionary<string, double>> data, int period, int factor)
    {
        double total_average = 0;

        for (int i = 0; i < data.Count(); i++)
        {
            total_average += data.Values[i]["close"];

            if (i >= period - 1)
            {
                double total_bollinger = 0;
                double average = total_average / period;

                for (int x = i; x > (i - period); x--)
                {
                    total_bollinger += Math.Pow(data.Values[x]["close"] - average, 2);
                }

                double stdev = Math.Sqrt(total_bollinger / period);

                data.Values[i]["bollinger_average"] = average;
                data.Values[i]["bollinger_top"] = …
Run Code Online (Sandbox Code Playgroud)

c# algorithm finance moving-average standard-deviation

20
推荐指数
2
解决办法
2万
查看次数