- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要开发一种算法,该算法能够计算从一个事件(发生次数 True/False 存储在列表 Vec1 中)到另一个事件(发生次数True/False 存储在列表 Vec2 中。两份榜单如下:
Vec1 = [True, False, False, False, False, True, True, True, False, True, True, True, False, True, False, True, False, False, False, True]
Vec2 = [True, False, False, True, True, True, False, True, False, True, True, True, False, True, True, True, True, False, False, True]
为了得到更好的解释,假设 Vec1 正在回答“约翰今天喝咖啡了吗?” Vec2 正在回答“保罗今天喝咖啡了吗?”。所以,我想用这个指标得到的是事件“John drinks”和事件“Paul drinks”之间经过的天数。逻辑结构如下:
1) 在第一个向量中找到值“True”,并从那天开始计数;2)继续计数,直到找到第二个向量中的“真”,从那一刻起重置计数器。
填充空的结果列表:
ValueInd = []
到目前为止,我已经能够建立这个:
trueVector1 = 0
trueVector2 = 0
countAct = False
Count = 0
while len(ValueInd) < len(Vec1):
while Vec1[trueVector1] == False:
ValueInd.append(Count)
trueVector1 += 1
countAct = True
trueVector2 = trueVector1
while countAct == True:
if Vec2[trueVector2] == True:
countAct = False
ValueInd.append(Count)
Count = 0
trueVector1 = trueVector2 + 1
else:
ValueInd.append(Count)
trueVector2 += 1
Count += 1
除了现在算法的可怕结构(我稍后会修改)之外,我无法获得合适的解决方案,因为这个算法不起作用。根据我上面提供的数据,正确的输出应该是:
ValueInd = [0,0,0,0,0,0,0,1,1,2,1,1,0,1,2,1,0,0,0,0]
我实际得到的输出是:
ValueInd = [0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0]
有人可以帮我吗?请询问您是否需要进一步的解释。
示例在 15 天的日历中,约翰在第 0、4、5、8、10 天喝咖啡。在 15 天的日历中,Paul 在第 2、4、7、8、11 天喝咖啡。因此,出现向量是:
John = [T, F, F, F, T, T, F, F, T, F, T, F, F, F, F, F]
Paul = [F, F, T, F, T, F, F, T, T, F, F, T, F, F, F, F]
此示例中的结果向量将是:
Days = [0, 1, 2, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0]
这是因为:0) John喝酒而Paul不喝酒,所以计数从0开始;1) 没有人喝咖啡所以计数增加到 1;2)保罗喝了,所以计数增加到2,然后关闭;3)不激活计数;4) 都喝了,所以计数在同一天以0开始和结束;5)约翰喝酒,保罗不喝酒:所以计数被激活并从零开始;6) 保罗一天不喝酒 -> 计数 = 17) Paul drinks -> count = 2 并重置为 08)两人都喝酒,所以计数从0开始,同一天结束9) John 喝了酒,所以计数从 0 开始10) 保罗喝酒,所以计数以 1 结尾11 - 15) 没有人喝所以计数总是零。
最佳答案
以下作品,
def get_counts(Vec1, Vec2):
c = 0
counts = []
counting = False
for v1, v2 in zip(Vec1, Vec2):
counts.append(c)
if v1:
counting = True
c = 0
if v2:
counting = False
c = 0
if counting:
c += 1
例如
T = True
F = False
John = [T, F, F, F, T, T, F, F, T, F, T, F, F, F, F, F]
Paul = [F, F, T, F, T, F, F, T, T, F, F, T, F, F, F, F]
get_counts(John, Paul)
>> [0, 1, 2, 0, 0, 0, 1, 2, 0, 0, 0, 1, 0, 0, 0, 0]
关于python - 计算两个事件之间有多少obs的算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22657123/
假设我们创建一个对象 var ob = {} 当我检查时 ob.constructor.prototype == ob.__proto__ 两者都是一样的,怎么可能? 最佳答案 ob 是一个普通对象,
ob->i 应该返回 ob this 的地址,但它返回 i,有什么解释吗? #include using namespace std; class myclass { public: int i
A 是这样定义的类: class A { public: int x; } 主要内容: int main() { A(ob); // note that copy const
我有一个重复测量数据集。我需要删除所有参与者,其中该个人的观察次数少于 3。执行此操作的最佳方法是什么? x 2,] 最佳答案 x[x %in% names(table(x)[table(x) >=
想知道在android中哪种方法更快。只为求知。 TextView t; t = (TextView) findViewById(R.id.TextView_ID); int number=5; t.
我对 OBS 有疑问。我想制作教程如何进行编程,教人们基础知识并向他们展示,例如,如何用 Java 编写神经网络(没有任何 ML 库)但是为了这样做,向他们展示我的东西会很棒关于它和其他窗口的演示,因
我正在尝试将xscreensaver流式传输到youtube,如下所示:https://www.youtube.com/watch?v=ZjhC5Fpcx7k 关闭流时,xscreensaver保持
我很难过。 我想将一个非常大的数据集缩减为更少的观察值,但一次(最多)包含原始数据集的所有级别。这样做是出于测试目的,因此提出具有最少 obs 数量的最终数据集符合我们的最大利益。 因此,如果我们以数
在 Linux 或 BSD 操作系统上设置基本的实时流媒体服务器。 实时视频流越来越流行。亚马逊的 Twitch 和谷歌的 YouTube 等平台拥有数百万用户,这些用户消磨了无数小时的来观看
如上所述,我想使用 OBS(开放广播软件)流式传输到我的局域网服务器 在 OBS 中有一个“保存到文件”选项,但质量可能非常低并且占用计算机上的大量资源。我有一个文件服务器,我几乎可以用它来处理所有事
我正在为我的数据建立一个相关矩阵,它看起来像这样 df <- structure(list(V1 = c(56, 123, 546, 26, 62, 6, NA, NA, NA, 15 ), V2 =
对于任何熟悉开放流媒体软件OBS(开放广播软件)的人来说,您都会知道他们有开始录制(实时捕获)功能。 我想抓取实时捕获并读取它的字节,以便在我这边进行进一步操作,而无需处理正在创建的实际文件。 问题仍
我正在尝试使用 php 中的 for 循环将行插入 MySQL 数据库。我想要的是回显在完成时插入的特定行名称。我尝试了flush方法,但是没有用,连ob_flush也没有用。 然后我在这里搜索了解决
我有一个使用 hubspot 里程表的网站。当用户从浏览器访问网站时,一切正常,但是,如果用户在 OBS 中添加浏览器源,一些里程表会拒绝加载,因此只显示纯数字。 这是我的网站在浏览器中的样子: li
我正在尝试通过 OpenSuse 的开放构建服务从源代码创建 Cherokee 的 rpm 包。我已经上传了 SUNWCherokee.spec 但构建失败,我不明白为什么。这是日志文件。我希望有人能
阅读时 an intro to rxjs我读了以下内容并有点担心 the second subscription will restart the sequence from the first va
我正在使用以下包https://pub.dev/packages/get .我需要在 GetxController 的 onClose 中关闭我的 .obs 吗?我在文档中找不到任何关于此的内容。看着
在我的开发电脑中,“QSqlDatabase ob”行不会崩溃并且工作得很好。但是在一台新的电脑上移动了 exe,它崩溃了,但是如果我注释上面的行并再次准备 exe,它就可以正常运行。 所以我在新电脑
我有以下代码来遍历对象: var data = []; var obj = {... }; for (var key in obj) { if (!obj[key]["something"]) {
这是代码。我的函数不适用于对象 Array,但适用于使用对象文字定义的对象 ob。 function all_properties(object) { var value = "["; for (va
我是一名优秀的程序员,十分优秀!