- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
输入:
x - how many days patient was taking a substance
y - how many miligrams per day
z - what's the half-life of the substance in hours
输出:
a - for how many hours substance will stay in patient's body
(Let's assume that below y/200 threshold we say it's gone).
编辑:到目前为止,我所尝试的是不正确的。开始了:
public static int computeEliminationTime(int days, double dosage, int half_life) {
double saturation = 0.0d;
double threshold = dosage/200.0d;
boolean isHeStillTakingMedicine = true;
for (int hours = 0;; hours++) {
if (isHeStillTakingMedicine) {
if (hours % 24 == 0) {
saturation += dosage;
days--;
if (days == 0){
isHeStillTakingMedicine = false;
hours=1;
}
}
}
if (hours % half_life == 0) {
saturation /= 2.0d;
}
if (saturation < threshold) {
return hours;
}
}
}
我知道这种方法是错误的,因为物质的消除是一个连续的过程,它不会每隔几个小时发生一次。我研究了一下 exponential decay我只是不知道该怎么处理这个怪物。我的数学能力很差。
最佳答案
首先让我们看看物质在一天内衰变了多少。在 z 小时内数量减少 1/2 倍,然后在 24 小时内数量减少 q = (1/2) 24/ z = 2 -24/z 次。
现在让我们看看服用最后一剂后会有多少物质。第一剂后是 T1 = y。在第 n + 1 天,金额为 Tn+1 = Tn • q + y。我们需要找到 Tx 在第 x 天的物质数量。
如果您尝试写出此递归关系的前几项,您会注意到这归结为 Tx = y • q x-1 + y • q < em>x-2 + ... + y。这只是一个几何级数的总和。因此,Tx = y • (1 - q x )/(1 - q)
现在我们必须找出 Tx 衰减到 y/200 需要多少时间。这是 log 2 (Tx/(y/200)) 个半衰变周期,即等于z • log2 (Tx/(y /200)) 小时。
因此,如果您替换 Tx,结果将是 a = z • log2 (200 • (1 - q x)/(1 - q)) 小时,其中 q = 2 -24/z
关于algorithm - 半条命。需要帮助设计算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37039298/
输入: x - how many days patient was taking a substance y - how many miligrams per day z - what's the h
我想知道半条命 2 多人游戏协议(protocol)如何在反恐精英:来源或失败之日:来源等模组中发挥作用。我相信他们使用了某种混淆和专有压缩算法。我想知道不同类型的消息是如何编码在一个数据包中的。 最
我是一名优秀的程序员,十分优秀!