问题标签 [complement]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
1243 浏览

c - 在 C 中构造数组补码的惯用方法

我正在编写一个函数,该函数将指针传递给长度为 4 的数组。这个数组将包含整数0 <= x <= 52,我想用 da kine 中不在传入数组中的每个整数构造一个长度为 48 的数组。在 python 中,这将是

在C中我能做的最好的就是

这对于这种情况是最优的吗?一般来说,是“首选”模式吗?

0 投票
1 回答
1517 浏览

complement - 模糊逻辑 。如何获得补码

我遇到了以下关于模糊逻辑的模糊逻辑示例。

代表年龄问题 2-1。模糊集可用于表示模糊概念。设 U 为人类的合理年龄区间。

U = {0, 1, 2, 3, ... , 100}

解决方案 2-1。通过将年龄的通用空间设置为 0 到 100 的范围,可以使用模糊集来解释这个区间。

问题 2-2。假设“young”这个概念用一个模糊集Young来表示,它的隶属函数由下面的模糊集给出。

Young= FuzzyTrapeZoid [0 ,0 ,25 ,40]

我只想了解如何获得补体[年轻]

0 投票
3 回答
379 浏览

c - 为什么1s补码是-2

请通过显示按位运算来解释这将有助于理解......

提前致谢.......

0 投票
2 回答
771 浏览

nosql - 使用文档数据库 (noSQL) 的基本基于集合的操作

与大多数人一样,我来自 RDMS 世界,试图了解 noSQL 数据库,特别是文档存储(因为我发现它们最有趣)。

我试图了解如何使用文档数据库执行一些基于集合的操作(我正在使用 RavenDB)。

所以根据我的理解:

  • 联合(如在 SQL UNION 中)是非常直接的追加。此外,不同集合之间的联合(SQL JOIN)可以实现映射/减少。RavenDB 神话书中给出的例子是博客条目上的评论计数是一个好的开始。
  • 可以使用多种技术执行交叉,从反规范化到创建“映射”或“链接”文档,如此处所述(以及下面聚合器示例)。在 RDMS 中,这将使用简单的“INNER JOIN”或“WHERE x IN”来执行
  • 减法(相对补码)是我卡住的地方。在 RDMS 中,此操作只是“WHERE x NOT IN”或“LEFT JOIN”,其中连接集为 NULL。

使用一个真实世界的例子,假设我们有一个 RSS 聚合器(例如 Google Reader),它有数百万甚至数十亿的 RSS 条目,有成千上万的用户,每个标签都是收藏夹等。

在这个例子中,我们关注入口、用户和标签;其中标签充当用户和条目之间的链接。

使用上述方法,很容易使用标签执行条目和用户之间的交集。但我无法理解如何执行减法。例如“返回所有没有任何标签的项目”,甚至更令人生畏的“返回最新的 1000 个没有任何标签的项目”。

所以我的问题:

  • 你能给我指出一些关于这个问题的阅读材料吗?
  • 你能分享一些关于如何有效完成任务的想法

注意:我知道您会失去使用文档数据库的查询灵活性,但肯定有办法做到这一点吗?

0 投票
5 回答
1550 浏览

python-3.x - python3:如何获得二进制数的逻辑补(否定),例如。'010' => '101'?

也许我错过了一些东西,但我找不到一个简单的方法来完成这个简单的任务。当我通过“~”运算符对二进制数求反时,由于二进制补码,它返回一个负数:

如果我只想将 0 转换为 1,反之亦然,就像在经典的逻辑补码中一样?

0 投票
1 回答
187 浏览

sql - 在 ActiveRecord 中补充?

我正在尝试使用 ActiveRecord 和/或 SQL 来寻找补充。

我有一个“注释”集合,每个注释都有两个相关字段:

  • session_datum_id 对应于执行注释的用户。Null 表示尚未完成。
  • post_id 表示注释为“关于”的帖子。不能为空。

每个 post_id 可能有多个注释。

我想有效地找到满足两个约束的注释:

  1. session_datum_id 为空。这意味着尚未执行此特定注释。
  2. 作为 arg 传入的 session_datum 尚未执行具有相同 post_id 的另一个注释。

这是一个非常幼稚的版本,它在数据库之外进行连接。它会找到该用户已经执行的所有注释,并从仍然需要执行的完整注释列表中删除这些 post_id。然后它从结果列表中随机选择:

随着注释列表变大,这将陷入困境。我可以想象一个概率算法,我们随机选择一个符合条件的注释,然后检查用户是否已经执行了它(如果是,则重试),但在某些退化的情况下它不起作用。(大量注释,用户执行了所有注释,但其中一个除外。)

是否有对此的封闭式查询,可能使用 NOT EXISTS?

0 投票
1 回答
4397 浏览

binary - +46 和 -17 的有符号幅度、1 的补码和 2 的补码

谁能验证我是否正确?

0 投票
1 回答
350 浏览

ruby - 找到两个哈希的(深)补码

补码是我正在寻找的数学术语,但对于上下文和可能更有针对性的解决方案:我有哈希 A,它可以有嵌套的哈希(即它们是 N 维的),我对其应用了一个过程(对此我无法控制)它返回哈希 B,这是删除了一些元素的哈希 A。从那里开始,我试图找到 A 中已在 B 中删除的元素。

例如:(请注意,为了简单起见,我使用符号。键将始终是符号,但值不会。)

这样做的最佳(红宝石式)方法是什么?

0 投票
4 回答
696 浏览

python - 匹配文件中的部分行(python)

我目前在一个文件中有一个基因列表。每条线都有一条带有它的信息的染色体。这样的条目显示为:

NM_198212 chr7 + 115926679 115935830 115927071 11593344 2 115926679 ,'115933260', 115927221 ,'115935830',

染色体的序列从碱基115926679开始,一直到(但不包括)碱基115935830

如果我们想要拼接序列,我们使用外显子。第一个从 115926679延伸到155927221,第二个从 '115933260' 到 '115935830'

但是,我在互补序列上遇到了一个问题,例如:

NM_001005286 chr1 - 245941755 245942680 245941755 245942680 1 245941755,'245942680'

由于第 3 列是“-”,因此这些坐标是指反义链(链的补码)。第一个碱基(粗体)与有义链上的最后一个碱基(斜体)匹配。由于文件只有有义支架,我需要尝试将反义链上的坐标转换为有义链,挑选出正确的序列,然后对其进行反向补码。

也就是说,我只编程了大约半年,并且不知道如何开始这样做。

我写了一个正则表达式:

但现在我不确定如何启动这个功能......如果有人可以帮助我开始这方面的工作,也许让我知道如何做到这一点,我将非常感激。

好的:假设这是 25 号染色体:

啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!

(每个字符有 10 个)。

现在:如果我正在寻找未剪接的基因:chr25 + 10 20

然后基因从位置 10(从 0 开始)开始,向上但不包括位置 20。所以它:

中交中交中交

这很简单。它非常适合 python 字符串切片。

如果我给你,它会更令人困惑:

chr25 - 10 20

你所拥有的是积极的一面。但是这个基因在负(互补)链上。记住染色体看起来像双链:

啊啊
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊!

我们正在寻找底部链上的基因。这意味着我们从右边开始从 0 开始计数。上链从左开始编号,下链从右开始。所以我在这里想要的是 AAAAAAAAAA。

问题是我只给你最上面的部分。我不会给你底线。(你可以从顶层生成自己——但考虑到它有多大,我建议不要这样做。)

所以你需要转换坐标。在底链上,碱基 0(最右边的 C)与顶链上的碱基 39 相对。以 1 为底数与 38 为底数。以 2 为底数以 37 为底数。(重要一点:注意每次将这两个数字相加时会发生什么。)因此,以 10 为底数以 29 为底数,以 19 为底数以 20 为底数。

所以:如果我想在底部链上找到基数 10-20,我可以查看顶部的基数 20-29(然后反向补码)。

我需要弄清楚如何将底部链上的坐标转换为底部链上的等效坐标。是的:这很混乱

我试过weronika的原始答案

这是在正确的轨道上,但这还不够。这将把 10 和 20 变成 20 和 10。

而且我知道我可以通过这样做来反向补充字符串:

已编辑!这看起来对吗?!

0 投票
2 回答
3894 浏览

assembly - 用汇编语言对寄存器中的位进行补码

如何补充寄存器中的一个或多个位?