在另一个问题中,你帮我建立了足球模拟算法.我在那里得到了一些非常好的答案.再次感谢!
现在我编写了这个算法.我想改进它并找到可能存在的小错误.我不想讨论如何解决它 - 正如我们在上一个问题中所做的那样.现在我只想改进它.你能再帮我一次吗?
应该对随机性产生影响的战术设置:
注意: Tactic 0和tactic 4部分集成在引擎的其余部分,此功能不需要.
目前的算法:
<?php
function tactics_weight($wert) {
$neuerWert = $wert*0.1+0.8;
return $neuerWert;
}
function strengths_weight($wert) {
$neuerWert = log10($wert+1)+0.35;
return $neuerWert;
}
function Chance_Percent($chance, $universe = …Run Code Online (Sandbox Code Playgroud) 我正在编写一个物理引擎/模拟器,它结合了3D太空飞行,行星/恒星引力,船舶推力和相对论效应.到目前为止,它的进展非常顺利,但是,我需要帮助的一件事是碰撞检测算法的数学计算.
我正在使用的运动的迭代模拟基本如下:
(注意:3D矢量是全部大写.)
For each obj
obj.ACC = Sum(all acceleration influences)
obj.POS = obj.POS + (obj.VEL * dT) + (obj.ACC * dT^2)/2 (*EQ.2*)
obj.VEL = obj.VEL + (obj.ACC * dT)
Next
Run Code Online (Sandbox Code Playgroud)
哪里:
obj.ACC is the acceleration vector of the object
obj.POS is the position or location vector of the object
obj.VEL is the velocity vector of the object
obj.Radius is the radius (scalar) of the object
dT is the time delta or increment
Run Code Online (Sandbox Code Playgroud)
我基本上需要做的是找到一个有效的公式,从上面的(EQ.2)派生出两个对象(obj1,obj2),并告诉他们是否碰撞,如果碰到,在什么时候.我需要确切的时间,以便我可以确定它是否在这个特定的时间增量(因为加速器在不同的时间增量会有所不同),并且还可以找到确切的位置(我知道该怎么做,给定时间)
对于这个引擎,我将所有对象建模为球体,所有这些公式/ algortithim需要做的是弄清楚在哪些点:
(obj1.POS - …Run Code Online (Sandbox Code Playgroud) 我刚刚用C#编写了一个体积适中的疾病传播模型.但是,我对.NET很新,不确定如何继续.目前我只需双击.exe文件,模型从文本文件导入配置设置,做到这一点,并将结果输出到文本文件中.
我接下来要做的是编写一个Python脚本来执行以下操作:
到目前为止,我的大部分编程经验都是在Linux上的C/C++中.我对最后两项很有信心; 但是,我不知道如何继续前两个.以下是一些我喜欢的具体问题:
谢谢!
游戏或图形行业中的传统物理模拟基本上是离散的.但是现在的引擎如box2d或bullet3d实现了连续物理模拟.我知道离散模拟的基本原理,但我不知道连续模拟.这对我来说是神奇的,使用魔法是艰难而危险的.因此,我希望通过理解它们将魔法变成工具.
所以我想知道:(1)这些连续物理模拟的基本思想和实现原理是什么?(2)这个想法可以推广到其他类型的离散模拟吗?请让我理解这一点!
我有兴趣在我的2GHz +处理器上以特定频率(如25MHz)运行程序.我可以想到做这样的事情的唯一方法是使用微秒精度睡眠函数,但我不确定如何计算线程应该睡多长时间以匹配特定频率.任何提示或其他想法?我在X86 Linux操作系统上用C语言做这个.
我知道时间是随机数生成的不安全种子,因为它有效地减小了种子空间的大小.
但是说我不关心安全问题.例如,假设我正在为纸牌游戏进行蒙特卡罗模拟.但是,我要关心尽可能接近真正的随机性.作为种子的时间会影响我的输出的随机性吗?在这种情况下,我认为PRNG的选择比种子更重要.
我正在开发一个OPC客户端,需要一个免费的OPC服务器,可以模拟值和设置值静态.有这样的服务器免费提供吗?
最重要的是,我正在寻找一种快速(呃)方式对矩阵进行子集化/索引很多次:
for (i in 1:99000) {
subset.data <- data[index[, i], ]
}
Run Code Online (Sandbox Code Playgroud)
背景:
我正在实现一个涉及R中引导程序的顺序测试程序.想要复制一些模拟结果,我遇到了需要完成大量索引的瓶颈.为了实现块引导,我创建了一个索引矩阵,我用它来对原始数据矩阵进行子集以绘制数据的重采样.
# The basic setup
B <- 1000 # no. of bootstrap replications
n <- 250 # no. of observations
m <- 100 # no. of models/data series
# Create index matrix with B columns and n rows.
# Each column represents a resampling of the data.
# (actually block resamples, but doesn't matter here).
boot.index <- matrix(sample(1:n, n * B, replace=T), nrow=n, ncol=B)
# Make matrix …Run Code Online (Sandbox Code Playgroud) 我想估计以下问题的力量.我有兴趣比较两组都遵循Weibull分布.因此,A组有两个参数(形状par = a1,scale par = b1),两个参数有B组(a2,b2).通过模拟感兴趣分布的随机变量(例如假设不同的尺度和形状参数,即a1 = 1.5*a2,b1 = b2*0.5;或者组之间的差异只是形状或尺度参数),应用log-似然比测试以测试a1 = a2和b1 = b2(或者例如a1 = a1,当我们知道b1 = b2时),并估计测试的功效.
问题是什么是完整模型的对数似然,以及如何在a)具有精确数据时对R进行编码,以及b)对于区间删失数据?
也就是说,对于简化模型(当a1 = a2,b1 = b2时),精确和区间删失数据的对数似然是:
LL.reduced.exact <- function(par,data){sum(log(dweibull(data,shape=par[1],scale=par[2])))};
LL.reduced.interval.censored<-function(par, data.lower, data.upper) {sum(log((1-pweibull(data.lower, par[1], par[2])) – (1-pweibull(data.upper, par[1],par[2]))))}
Run Code Online (Sandbox Code Playgroud)
什么是完整模型,当a1!= a2,b1!= b2时,考虑到两种不同的观测方案,即当必须估计4个参数时(或者,如果有兴趣查看形状参数的差异,必须估计3个参数)?
是否有可能估计它为不同的组建立两个对数似然并将它们加在一起(即LL.full <-LL.group1 + LL.group2)?
关于区间删失数据的对数似然,删失是非信息性的,所有观察都是间隔删失的.任何更好的想法如何执行此任务将不胜感激.
请在下面找到R代码以获取确切数据以说明问题.非常感谢你提前.
R Code:
# n (sample size) = 500
# sim (number of simulations) = 1000
# alpha = .05
# Parameters of Weibull distributions:
#group 1: a1=1, b1=20
#group 2: a2=1*1.5 b2=b1
n=500 …Run Code Online (Sandbox Code Playgroud) simulation ×10
python ×2
r ×2
3d ×1
assembly ×1
c ×1
continuous ×1
cpu ×1
filesystems ×1
inference ×1
math ×1
modeling ×1
montecarlo ×1
opc ×1
php ×1
physics ×1
principal ×1
prng ×1
random ×1
security ×1
simulator ×1
subprocess ×1
weibull ×1
x86 ×1