编写 powerset 代码时遇到的问题

2024-06-08

我正在尝试生成一个集合的幂集,并且编写了这段代码。问题是,当用户输入集合中两个相似的成员时,它无法正常工作。我能做些什么? 这是我的代码:

#include <iostream>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
using namespace std;

char obtain(char *p,int n)
{
    int i;
    for(i=0;i<n;i++)
    {
        cout<<"enter member"<<(i+1)<<"\n";
        cin>>*(p+i);
    }
    return *p;
}

void set_display(char *p,int n)
{
    cout<<"{";
    for(int i=0;i<n;i++)
    {
        cout<<*(p+i)<<",";
    }
    cout<<"}";
}

void powset(char *p,int n)
{
    unsigned int m = (double)pow((double)2, n);
    int i, j;
    for(i = 0; i < m; i++)
    {
        cout<<"{";
        for(j = 0; j < n; j++)
        {
            if(i& (1<<j))
                cout<<*(p+j);
        }
        cout<<"}\n";
    }
}

好吧,我无法在您丢失的地方调试您的代码。但自从你发布了你的问题后,我用纯代码编写了代码C。也许您会发现它有帮助。

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<math.h>
int main(int argc, char* argv[]){
    int N;
    char y[20]={0};
    int i,j;
    y[0] = 'a';
    y[1] = 'b';
    y[2] = 'c'; 
    N = 3;
    int powerSet;
    powerSet=pow(2,N);
    for(i = 0; i<(powerSet);i++){
        for(j=0;j<N;j++){
            if((i & (1<<j))){
                printf("%c ",y[j]);
            }
        }
        printf("\n");
    }           
    printf("\n");
    return EXIT_SUCCESS;
}

及其工作原理:

:~$ gcc x.c -lm -Wall
:~$ ./a.out 

a 
b 
a b 
c 
a c 
b c 
a b c 

[ANSWER]

您的错误情况:当两个符号相同时。

y[0] = 'a';
y[1] = 'a';
y[2] = 'c'; 

:~$ ./a.out 

a 
a 
a a 
c 
a c 
a c 
a a c 

但根据集合论,这是错误的。因为在 Set 中我们不能两次拥有相同的元素(不止一次)。但输入也是错误的:(a, a, c)不是一个集合。所以代码是可用的。

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

编写 powerset 代码时遇到的问题 的相关文章

随机推荐

  • 如何检测谷歌地图是否加载成功

    我在我的网站中使用谷歌地图版本 3 我遇到了地图有时无法加载的问题 而是显示为灰色框 并且浏览器日志将充满错误 不幸的是 我现在无法获取日志 因为地图再次工作 根据一些研究 问题是因为我使用的实验版本 有没有办法查明地图是否已成功加载或崩溃
  • 当 docker 停止时运行脚本

    我正在尝试使用 dockerfile 创建 docker 容器 其中 script entry sh 将在容器启动时执行 而 script exit sh 将在容器停止时执行 ENTRYPOINT 帮助解决了 script entry sh
  • WPF 将枚举列表(或类似的)绑定到复选框列表

    我想将复选框列表绑定到 WPF 中的枚举值集合 枚举不是 Flags 语境 它用于过滤数据网格 其中每个项目都有我的枚举的一个实例 它不一定需要绑定到列表 固定大小的集合也可以 假设您想绑定到枚举的所有可能值 您可以使用对象数据提供者 ht
  • 为什么类型级计算需要 Aux 技术?

    我很确定我在这里遗漏了一些东西 因为我对 Shapeless 还很陌生并且我正在学习 但是 Aux 技术实际上是什么时候required 我看到它是用来暴露type通过将其提升为另一个 同伴 的签名来声明type定义 trait F A t
  • 发送压缩文件 Spring

    我想通过我的 spring 控制器发送一个已经存在的压缩文件 但我不断收到这些错误消息org springframework web HttpMediaTypeNotAcceptableException Could not find ac
  • Angular 2 RC 2 如何将路由器注入自定义异常处理程序

    我正在使用 Angular 2 RC2 我需要将 Angular 2 Router 注入到我的自定义 ExceptionHandler 类中 但是我收到以下错误 错误 错误 无法解析 ErrorHandler 的所有参数 确保所有参数都用
  • Spring Batch-如何将文件本身作为项目处理?

    我是春季批量开发的新手 我有以下要求 将有一个带有 zip 文件的 s3 源 每个 zip 文件将包含多个 pdf 文件和 xml 文件 例如 100 个 pdf 和 100 个 xml 文件 xml 文件将包含有关 pdf 的数据 Bat
  • NSAttributedString - 获取字体属性

    我需要获取有关我的属性字符串的信息 但不知道如何获取 我得到这本词典 2013 11 04 18 06 10 628 App 1895 60b NSColor UIDeviceWhiteColorSpace 0 3 1 NSFont
  • 在 INSERT INTO....RETURNING 上添加 LEFT JOIN

    我的查询插入一个值并返回插入的新行 INSERT INTO event comments date posted e id created by parent id body num likes thread id VALUES 15757
  • 使用 Either 处理 Scala 代码中的故障

    Optionmonad 是 Scala 中处理有或无事物的一种很好的表达方式 但是 如果在 什么也没发生 时需要记录一条消息怎么办 根据 Scala API 文档 Either 类型通常用作 scala Option where Left
  • Flux Dispatch.dispatch(...):无法在调度中间调度

    My code https gist github com ButuzGOL 707d1605f63eef55e4af https gist github com ButuzGOL 707d1605f63eef55e4af 因此 当我收到登
  • keras LSTM 以正确的形状提供输入

    我从具有以下形状的 pandas 数据框中获取一些数据 df head gt gt gt Value USD Drop 7 Up 7 Mean Change 7 Change Predict 0 06480 2 0 4 0 0 000429
  • JavaScript“类”的规范术语[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 这是一个在 JavaScript 中定义 类 创建它的实例并调用它的方法 函数之一的简单示例 Define a class like this
  • 检查 SQL MAX() 函数返回 null

    我的问题是 如果我的表为空或者我使用 max 函数的列没有我指定的值 那么为什么 sqlDataReader hasRows TRUE 它给出了空记录 我该如何解决这个问题 提前致谢 像 MAX 这样的聚合函数将始终为每组返回一行 就您而言
  • 如何在Windows控制台中递归使用“svn add”?

    当我跑步时 svn st 在我的工作副本上我得到一些 位于工作副本根目录的子目录中的条目 我想将它们全部添加到存储库中 我尝试 svn add force and svn add force 但它不起作用 工作方案 svn add dept
  • 减缓 Push Segue 的过渡

    我想知道是否有一种方法可以像 Tinder 和 Snapchat 那样减慢 推进和返回 速度 这就像正常的转场 但不知怎的 它过渡得很慢 我通常通过在 Storyboard 上设置推送通知并以编程方式调用 segue 来处理推送 Segue
  • 删除 nullptr - 性能开销?

    运算符delete 检查自身指针是否为nullptr 在不亲自检查的情况下对 nullptr 调用 delete 是否会产生性能开销 delete ptr or if ptr nullptr delete ptr 如果 ptr 为 null
  • 为什么我们需要 Redis 来运行 CKAN?

    我想知道为什么我们需要 Redis 服务器来运行 CKAN 如果需要 为什么 我如何使用 CKAN 配置它 附注 我正在 RHEL7 中运行我的 ckan 实例 Update Redis 已成为一项要求从CKAN 2 7开始 https d
  • 按名称前缀对文件进行分组,然后使用 PowerShell 归档 (zip) 每个组

    我有以下情况 我的目录中有大量文件 名称如下 dynamicname timestamp xml 我想按 对文件进行分组 然后将分组的文件压缩到以该组的 命名的存档中 在这种情况下 文件名和时间戳并不重要 只重要前六位数字 我是 Power
  • 编写 powerset 代码时遇到的问题

    我正在尝试生成一个集合的幂集 并且编写了这段代码 问题是 当用户输入集合中两个相似的成员时 它无法正常工作 我能做些什么 这是我的代码 include