我有以下代码使用预先计算的内存表进行Sin/Cos函数.在下面的示例中,该表具有1024*128项,涵盖从0到2pi的所有Sin/Cos值.我知道我可以使用Sin/Cos对称并只保留1/4的值,但是在计算值时我会有更多'ifs'.
private const double PI2 = Math.PI * 2.0;
private const int TABLE_SIZE = 1024 * 128;
private const double TABLE_SIZE_D = (double)TABLE_SIZE;
private const double FACTOR = TABLE_SIZE_D / PI2;
private static double[] _CosineDoubleTable;
private static double[] _SineDoubleTable;
Run Code Online (Sandbox Code Playgroud)
设置转换表
private static void InitializeTrigonometricTables(){
_CosineDoubleTable = new double[TABLE_SIZE];
_SineDoubleTable = new double[TABLE_SIZE];
for (int i = 0; i < TABLE_SIZE; i++){
double Angle = ((double)i / TABLE_SIZE_D) * PI2;
_SineDoubleTable[i] = Math.Sin(Angle);
_CosineDoubleTable[i] = Math.Cos(Angle);
}
}
Run Code Online (Sandbox Code Playgroud)
价值是弧度的两倍.
Value %= …Run Code Online (Sandbox Code Playgroud) 我正在研究一个正在探索采用敏捷开发实践的可能性的团队.
我们遇到的一个问题是决定何时完成迭代(sprint).
假设我们已经定义了我们的功能积压,并为他们制作了故事点估计,我们已经确定第一个30天的冲刺将包括功能A,B,D和F.如果你在你身边,你应该怎么办?到达冲刺结束时你已经完成了A,D和F - 但是B只完成了80%.你应该:
按时完成冲刺但排除功能B(将剩余的工作推迟到未来的冲刺)
将sprint扩展到完成功能B所需的时间,但不启动下一个sprint.
将sprint扩展到完成功能B所需的时间并开始处理下一个sprint.
整个sprint失败,捆绑所有工作成为未来版本的一部分.
我在选项1中看到的问题是团队没有提供它所承诺的内容.在某些情况下,您可能无法在不使整个版本无用(或至少实质上不那么有价值)的情况下排除功能B. 如果没有特征B,可能难以指导下一个冲刺的方向.
选项2的问题在于团队中的某些成员可能在很长一段时间内闲置 - 这会影响整体生产力.您可以添加更多单元测试或抛光功能,但不会增加比例值.在政治上也难以向管理层解释为什么你的大部分团队都处于空闲状态.
选项3似乎违背了敏捷的精神 - 你不会让前一个sprint的结果引导下一次开发迭代,从而使下一个sprint面临风险.
选项4似乎很严重,并且在选项1和3中存在大多数相同的问题.首先,您完全错过了承诺.其次,将更多功能捆绑到后续版本中会使得更难以与客户进行测试和验证 - 并且它再次排除了根据之前版本的反馈来指导未来迭代的能力.
我有一个导入脚本,它运行一系列命令,从一个Postgres DB到另一个,从而运行相同的Django代码库.在大多数情况下,它使用./manage.py loaddata进行复制,但有些对象需要额外的处理,我在自定义脚本中使用Django的objects.create()方法来复制数据.这样做时,我指定ID,即
MyObject.objects.create(id = 2, title = 'foo')
Run Code Online (Sandbox Code Playgroud)
一旦脚本完成,我注意到Postgres SEQUENCE在我执行objects.create()的表上是错误的.即,在导入之前它是50,并且仍然是50之后,即使该表现在有150个对象.当然,这会在创建新对象时导致错误,因为它会尝试使用已存在的ID(在所有这些表中,ID只是一个vanilla自动增量字段).但是,通过./manage.py loaddata填充的表似乎很好.
我知道我可以用Django的./manage.py sqlsequenreset手动重置这些表,但我很好奇为什么序列似乎首先出现了问题.objects.create()不会增加它吗?我忽略了一些明显的东西吗
如何在Java EE中获取当前Web应用程序的名称?
我对独立Java很满意,但Java EE对我来说是新手.我正在编写一些自定义代码来插入第三方Java EE报告包.我在同一个Tomcat服务器上部署了多个实例,所以我有类似的东西:
C:\
+-- tomcat6
+-- webapps
+-- app1
+-- app2
因此,当用户访问时,请说http://example.com/app1/viewReport,我希望能够获得"app1".(而不是通过解析URL,最好.)
另外,如果有办法获得app1的根(在这个例子中,C:\ tomcat6\webapps\app1),那也很棒.
我想用它BackgroundWorker来从GUI执行数据库事务.
我如何命令BackgroundWorker执行工作然后等待工作人员完成,同时保持GUI响应?
我是否必须DoEvents为此目的使用,还是有另一种方式?
我正在创建一些动态linq并遇到以下异常问题:
没有为类型'System.Nullable`1 [System.DateTime]'和'System.DateTime'定义二元运算符GreaterThanOrEqual
我明白了,因为我的字段类型是可以为空的,而且我实际上是在DateTime.Now中传递的.
所以在试图解决这个问题时我已经尝试过了
System.Nullable<DateTime> now;
now = DateTime.Now;
Run Code Online (Sandbox Code Playgroud)
但结果类型是一个不可为空的对象,因此仍然给我上述异常.
有什么建议?!
更新:为了进一步说明,now变量在设置时变为非可空类型,而不是保持为可空的DateTime,因此匹配会引发异常
更新:可以在CodePlex项目中看到实际代码:
http://webquarters.codeplex.com/SourceControl/changeset/view/36529#574700
违规线约为145
fExp = Expression.GreaterThanOrEqual(fExpLeft, fExpRight);
Run Code Online (Sandbox Code Playgroud) 我有TreeView一些像TextBoxes和ComboBoxes 这样的其他控件.在TextBoxES绑定到所选的项目,TreeView就像这样:
Text="{Binding SelectedItem.Name, ElementName=groupTreeView}"
Run Code Online (Sandbox Code Playgroud)
如果我的所有元素TreeView都有一个Name属性,这可以正常工作.
我想知道是否有办法做某种条件绑定会说:
if SelectedItem is MyTreeType
then bind
else
disable the element
Run Code Online (Sandbox Code Playgroud)
可以这样做吗?现在我只是抛出绑定错误而且看起来有点脏.我TreeView是数据绑定,并且有几个不同类型的类,所以这就是为什么我正在寻找某种条件绑定.
谢谢,劳尔
我想要一个jquery代码,它创建一个包含给定内容的div,然后将其向下滑动.
目前我有这个代码:
var newdivcontent = //ajax code here to bring new content
var newdivname = Math.floor(Math.random()*11);
$("#topofpage").after("<div id='"+ newdivname+"'>"+newdivcontent+"</div>");
$(newdivname).hide();
$(newdivname).slideDown("slow");
<div id="topofpage">Real Time Posts: <br></div>
Run Code Online (Sandbox Code Playgroud)
但它只是创造了div而不是滑行.
谢谢
以下代码如何在C++中工作?这合乎逻辑吗?
const int &ref = 9;
const int &another_ref = ref + 6;
Run Code Online (Sandbox Code Playgroud)
为什么当非const引用不允许C++时,C++允许对const引用进行文字初始化?例如:
const int days_of_week = 7;
int &dof = days_of_week; //error: non const reference to a const object
Run Code Online (Sandbox Code Playgroud)
这可以通过以下事实来解释:非const引用可用于更改它所引用的变量的值.因此,C++不允许对const变量进行非const引用.
这可能是一个可能的解释吗?C++不允许:
int &ref = 7;
Run Code Online (Sandbox Code Playgroud)
因为这不符合逻辑,但是:
const int &ref = 7;
Run Code Online (Sandbox Code Playgroud)
几乎相当于:
const int val = 7;
Run Code Online (Sandbox Code Playgroud)
因此,const变量允许进行文字初始化.
PS:我正在研究Lippman的C++入门.
.net ×2
c# ×2
wpf ×2
agile ×1
c#-3.0 ×1
c++ ×1
conditional ×1
data-binding ×1
django ×1
java ×1
java-ee ×1
jquery ×1
optimization ×1
performance ×1
postgresql ×1
reference ×1
reflection ×1
ruby ×1
tomcat ×1
variables ×1
winforms ×1