给定输入生成真值表?

2024-03-02

是否有一种智能算法可以获取多个概率并在多维数组或容器内生成相应的真值表

Ex :

n = 3
N : [0 0 0
     0 0 1
     0 1 0 
     ...
     1 1 1] 

我可以使用 for 循环和 If 来完成此操作,但我知道我的方法会很慢且耗时。因此,我想问是否有一种高级功能可以让我尽可能高效地做到这一点?


如果我们允许用全零填充表格来开始,那么应该可以准确地执行2^n - 1填充以设置我们想要的 1 位。这可能不会比编写手动循环更快,但它完全没有配置文件。

编辑: 线路std::vector<std::vector<int> > output(n, std::vector<int>(1 << n));声明一个向量的向量。外层向量的长度为 n,内层向量的长度为2^n(n 个输入的真值结果数)但我通过使用左移进行幂计算,以便编译器可以插入一个常量而不是调用,例如pow。在这种情况下n=3我们最终得到一个 3x8 向量。我以这种方式组织它(而不是通常的 8x3,以行作为第一个索引),因为我们将在输出数据中利用基于列的模式。使用vector这种方式的构造函数还确保向量向量的每个元素都初始化为 0。因此,我们只需要担心将我们想要的值设置为 1,而无需理会其余的值。

第二组嵌套for循环只是用于在完成后打印结果数据,没有什么特别的。

第一组 for 循环实现了真正的算法。我们在这里利用输出数据中基于列的模式。对于给定的真值表,最左边的列将有两部分:前半部分全为 0,后半部分全为 1。由于我们预先填充了零,因此将应用从中间向下开始的一半列高的单次填充我们需要的所有 1。第二列将包含行 1/4th 0、1/4th 1、1/4th 0、1/4th 1。因此,两次填充将应用我们需要的所有 1。我们重复此操作,直到到达最右边的列,在这种情况下,每隔一行都是 0 或 1。

我们开始说“我需要一次填充一半的行”(unsigned num_to_fill = 1U << (n - 1);)。然后我们遍历每一列。第一列从要填充的位置开始,并用 1 填充那么多行。然后我们增加行并将填充大小减少一半(现在我们一次填充 1/4 行,但然后我们跳过空白行并第二次填充)下一列。

例如:

#include <iostream>
#include <vector>

int main()
{
    const unsigned n = 3;
    std::vector<std::vector<int> > output(n, std::vector<int>(1 << n));

    unsigned num_to_fill = 1U << (n - 1);
    for(unsigned col = 0; col < n; ++col, num_to_fill >>= 1U)
    {
        for(unsigned row = num_to_fill; row < (1U << n); row += (num_to_fill * 2))
        {
            std::fill_n(&output[col][row], num_to_fill, 1);
        }
    }

    // These loops just print out the results, nothing more.
    for(unsigned x = 0; x < (1 << n); ++x)
    {
        for(unsigned y = 0; y < n; ++y)
        {
            std::cout << output[y][x] << " ";
        }
        std::cout << std::endl;
    }

    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

给定输入生成真值表? 的相关文章

  • 使用正则表达式或其他解析从文件中读取值

    我有一个记录带有时间戳的值的文件 我必须在特定时间后读取特定值 例如 文件有 2013 03 03 19 08 22 car 2001 Ford 2013 03 03 19 08 27 Truck 2012 Chevy 2013 03 03
  • JSON 值无法转换为 System.Collections.Generic.List

    我正在尝试列出游戏中的所有项目using System Text Json 我对使用 json 文件很陌生 我尝试这样做来测试它是否有效 List
  • LogicalOperationStack 与 .Net 4.5 中的异步不兼容吗

    Trace CorrelationManager LogicalOperationStack允许具有嵌套逻辑操作标识符 其中最常见的情况是日志记录 NDC 它是否仍然可以使用async await 这是一个简单的例子 使用LogicalFl
  • 这些比较应该返回什么?

    我有一个使用 string compare string string 对某些值进行排序的应用程序 我不明白的是为什么 1022 比较小于 10 23 而 10 23 比较小于 1024 是否有特定于 值的东西导致了这个结果 string
  • 未初始化成员的警告在 C++11 上消失

    我编译这个简单的程序 include
  • C 程序的“编译器正确”命令

    这是关于中提到的编译步骤Linux 期刊文章 https www linuxjournal com article 6463 C 程序是使用编译的cpp cc1 as and ld该文章中的命令 我能够执行这些步骤cpp as and ld
  • C# 字典循环增强

    我有一本包含大约 100 万个条目的字典 我不断地循环字典 public void DoAllJobs foreach KeyValuePair
  • C# - 当站点上没有活动时,Quartz 调度程序停止运行

    我用quartz调度器创建了asp net站点 该作业正在后台运行 站点上没有其他活动 Quartz 调度程序每 30 分钟调度一次 IIS启动后 Scheduler运行正常 但一段时间后 Scheduler 停止运行 大约 1 小时 如果
  • 尝试从 C# 调用简单的 Python 脚本,但由于“无法获取 Python 编解码器”致命错误而失败。我怎样才能解决这个问题?

    相关的C 代码片段如下 static string CallPython string fileName Process p new Process p StartInfo new ProcessStartInfo C Python310
  • 只允许在 datagridview 单元格中键入一些字符

    有没有办法只将某些字符添加到 datagridview 单元格中 像 1234567890 据我所知 您可以使用两种方法来实现此目的 第一个 我认为最好的 是使用 CellValidating 事件DataGridView并检查输入的文本是
  • 仅使用 url 嵌入视频

    给定一个 youtube url 我如何使用 net c 将视频嵌入到页面中 只需添加如下一行 将 autoplay 设置为 0 或 1 取决于您是否希望人们真正留在您的页面上
  • List.Except 不起作用

    我尝试减去 2 个列表 如下代码所示 assignUsers已获得 3 条记录assignedUsers有 2 行 后Except方法我仍然得到 3 行 尽管我应该得到 1 条记录 因为 2 行assignedUsers类似于assignU
  • c++ string::size 中的 CharT 元素是什么?

    From http en cppreference com w cpp string basic string size http en cppreference com w cpp string basic string size 的数量
  • 在 C# 中同步闪烁标签

    我创建了一个BlinkingLabel类 源自Forms Label 其中有一个Forms Timer这允许我启用和禁用闪烁效果 我创建了 4 个标签BlinkingLabel类型 我的问题是 如果所有 4 个标签在不同时间闪烁 则闪烁效果
  • 图像处理编程

    我想知道是否有任何方法可以使用某种编程语言检测图像中对象的位置 例如 如果我有一个球的图像 每 100 毫秒更新一次 是否可以通过某些程序使用某些东西来获取球的坐标 看一下OpenCV http opencv willowgarage co
  • 多线程文件写入

    我正在尝试使用多个线程写入大文件的不同部分 就像分段文件下载器所做的那样 我的问题是 执行此操作的安全方法是什么 我是否打开文件进行写入 创建线程 将 Stream 对象传递给每个线程 我不希望发生错误 因为多个线程可能同时访问同一个对象
  • 如何使用va_start()?

    在具有可变参数的函数中 我们使用函数 va start 初始化 va list ap 类型的对象 如下所示 void va start va list ap parmN 我不明白1 什么类型的对象可以作为 parMN 最后一个已知参数 传递
  • SQL 注入在 winform 中有效吗?

    我正在用 C 制作一个 Windows 软件 我读过关于sql injection但我没有发现它适用于我的应用程序 SQL 注入在 winform 中有效吗 如果是的话如何预防 EDIT 我正在使用文本框来读取用户名和密码 通过使用 tex
  • 提高大型结构列表的二进制序列化性能

    我有一个以 3 个整数保存 3d 坐标的结构 在测试中 我将 100 万个随机点放在一起 List 然后对内存流使用二进制序列化 内存流大小约为 21 MB 这似乎非常低效 因为 1000000 点 3 坐标 4 字节应该至少为 11MB
  • 通过网络共享的 SQL CE

    我之前见过这个问题 但找不到关于什么是可能 不可能以及什么解决方法可能可用的明确解释 我有一个现有的 C 应用程序 它使用 SQL CE 来存储本地信息 该数据库只能由单个应用程序访问 并存储在用户的 appdata 文件夹中 某些环境将

随机推荐

  • 后藤此时却出乎意料——批处理

    我正在尝试制作一个基于批处理文本的游戏 但刚开始写就遇到了以前从未遇到过的问题 menu the game menu opens when the game starts cls echo This game is still being
  • ActiveSupport 中 mattr_accessor 和 cattr_accessor 之间的区别?

    我无法通过查看源代码来弄清楚两者之间的区别cattr and mattr 分别在类和模块中提供的方法 我读过这个问题 Rails 模块中的 mattr accessor 是什么 https stackoverflow com questio
  • 动态选择 WTForms Flask SelectField

    我正在尝试使用 FlaskForms 将 userID 变量传递给 WTForms 首先 我将展示工作正常的代码 然后展示我需要修改的内容 我不知道如何修改的部分 我正在添加与某个组关联的新名称 FlaskForm模型 class AddN
  • 用于解析单个键的正则表达式:Javascript 中的 JSON 值

    我想看看是否可以查找个人keys出于一个JSONJavascript 中的字符串并返回它Value with Regex 有点像建造一个JSON搜索工具 想象一下以下 JSON Name Humpty Age 18 Siblings Dra
  • 如何从c中的字符串数组中访问单个字符?

    只是想了解如何寻址字符串数组中的单个字符 另外 这当然会让我总体上理解指向指针下标的指针 如果我有char a我想到达第二个字符串的第三个字符 这有效吗 a 1 2 看来应该 几乎 但不完全是 正确答案是 a 1 2 因为您需要首先取消对实
  • Netbeans 7 调色板为空?如何恢复呢?

    我在 Kubuntu 12 04 上使用 Netbeans 7 我这样启动 Netbeans netbeans cp a usr share java xercesImpl jar Netbeans 和 Kubuntu 12 04 已知问题
  • 有没有办法使用正则表达式来匹配引号之外的文本模式?

    正如标题中所述 有没有一种方法可以使用正则表达式来匹配出现在引号之外的文本的文本模式 理想情况下 考虑到以下示例 我希望能够匹配引号之外的逗号 而不是引号内的逗号 这是一些文本 后面是 文本 用引号引起来 or 这是一些文本 后面是 文本
  • 内核级别的 Docker 命名空间

    如何区分 docker 容器的 pid 1 17 等与主机的 1 17 等 pid 以及当我们在 docker 容器内创建新进程时发生的所有内核更改是什么 如何在宿主机中看到docker内部的进程 如何区分docker容器的pid 1 17
  • 使用 quosure 作为 by 参数连接数据集

    我正在尝试编写一个自定义函数 该函数将使用 quosures 作为 left join 函数的 by c 部分中的参数来连接两个数据集 这是我当前对该函数的尝试 在 by c left index right index 部分失败 left
  • 如何使用 javascript 替换字符串中所有出现的变量?

    我正在尝试使用 javascript 替换字符串中所有出现的变量 这不起作用 var id 1 var re new RegExp id g var newHtml oldHtml replace re 2 这仅替换第一次出现的 id va
  • 按随机顺序对数组列表进行排序

    我正在编写一个纸牌游戏 我有一个ArrayList持卡 Object 在哪里 他们每个人都有自己的 id 由于我想让这个游戏支持多人模式 我必须以某种方式在两个玩家之间发送 接收游戏进度 现在 如果我在一侧洗牌 我必须在另一侧做同样的事情
  • 使用 Nginx 设置 Laravel

    我正在尝试设置Laravel http laravel com 可使用的 PHP 框架Nginx http wiki nginx org Main 这是我的目录结构 project application laravel public in
  • 获取 Azure AD B2C 策略的 SAML 元数据时出错 - AADB2C90022

    在 Azure AD B2C 中设置自定义策略以连接到 ADFS 身份提供程序 这需要一个 SAML 元数据端点 如下面链接的文档中所指定 https learn microsoft com en us azure active direc
  • 为什么 XHTML 中的


    不同?

    这是 HTML 页面的完整源代码 one br two br three br four 谁能解释为什么当我在 IE8 或 chrome 中查看页面时 三 和 四 之间会出现额外的空行 我认为标准应该让所有浏览器看起来都一样 据我所知 这个
  • 自动将 CSV 文件导入 SQL Server [重复]

    这个问题在这里已经有答案了 我正在尝试将许多不同的 csv 文件导入 SQL Server 2008R2 数据库 文件中的数据以逗号分隔 我对文件格式没有发言权 有些列是文本 并用双引号分隔 就像在 Excel 中一样 这些列包含的文本可能
  • 在View的背景中画一个半圆

    我正在尝试创建一个背景为半圆的 TextView 我使用 ShapeDrawable 创建一个椭圆形 我尝试使用 ScaleDrawable 将椭圆形的垂直尺寸加倍并剪辑它来创建半圆 但是 ScaleDrawable 没有任何效果 为什么不
  • 我可以使用新的 ZeroClipboard 从剪贴板获取数据吗?

    我在项目中使用这个新版本的 ZeroClipboard https github com jonrohan ZeroClipboard https github com jonrohan ZeroClipboard 创建按钮来从 HTML
  • python中的加权非负最小二乘线性回归[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我知道有一个加权 OLS 求解器 http statsmodels sourceforge net d
  • 是否可以自定义 Visual Studio 2017 SSRS rptproj MSBuild 文件?

    我的公司对自定义 MSBuild 目标文件库进行了大量投资 我们用它来构建完整的产品 我们在源代码管理中拥有的每个项目文件都会导入至少一个自定义目标文件 这些文件最终都会导入一个包含大量通用目标和属性的核心目标文件 最近 我们在我们的解决方
  • 给定输入生成真值表?

    是否有一种智能算法可以获取多个概率并在多维数组或容器内生成相应的真值表 Ex n 3 N 0 0 0 0 0 1 0 1 0 1 1 1 我可以使用 for 循环和 If 来完成此操作 但我知道我的方法会很慢且耗时 因此 我想问是否有一种高