| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1741 人关注过本帖
标题:新人求助,编写一个声称所有可能密码的程序,有思路就好
只看楼主 加入收藏
vortex06
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-7-6
收藏
得分:0 
回复 9楼 wmf2014
数组计数器是什么,可以不用嵌套循环的吗
2017-07-07 16:30
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
到底还是排列组合算法~熟悉后挺基础的~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-07-07 16:38
vortex06
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2017-7-6
收藏
得分:0 
问题解决的很顺利,感谢各位大佬的帮助
2017-07-07 16:41
wmf2014
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:216
帖 子:2039
专家分:11273
注 册:2014-12-6
收藏
得分:0 
回复 12楼 九转星河
还不是排列组合,举简单例子:【1、2、3、4】里取3个数,如果是排列则有A(4,3)=4!/(4-3)!=24种取法,其中123、321、132都是合法取法,而组合则有C(4,3)=4!/(3!*(4-3)!)=4种取法,123=321=132,如果是任取3个则有4^3=64种取法,其中111、222等都是合法的。

能编个毛线衣吗?
2017-07-07 16:48
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
是97选3的全排列

DO IT YOURSELF !
2017-07-07 16:50
renkejun1942
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:不是这样
等 级:贵宾
威 望:33
帖 子:1645
专家分:5297
注 册:2016-12-1
收藏
得分:0 
97个字符,取任意3位,可能性是 97^3,也就是97的三次幂,结果只有91W种可能。

91W次循环,不至于跑不完,当然具体时间还要看最内层循环中的代码了。

[此贴子已经被作者于2017-7-7 18:10编辑过]


09:30 05/21 种下琵琶种子,能种活么?等待中……
21:50 05/27 没有发芽。
20:51 05/28 没有发芽。
23:03 05/29 没有发芽。
23:30 06/09 我有预感,要发芽了。
2017-07-07 18:09
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
收藏
得分:0 
回复 14楼 wmf2014
感谢你指点错误~如果可以重复似乎还简单一些~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2017-07-07 18:44
ehszt
Rank: 12Rank: 12Rank: 12
等 级:贵宾
威 望:40
帖 子:1745
专家分:3216
注 册:2015-12-2
收藏
得分:0 
没事练练手,顺便说下大小写字母共52个,楼主说有33个字符我怎么数都只有32个,后来加了个=号凑足33个,总共95个字符
按进位的方法做的。
仔细思考了一下应该不止95^3,因为还包括只输入1位数和2位数的情形,总和应为95^3+95^2+95=866495
修改如下:
#include <stdio.h>
#define N 3
char a[]={' ','0','1','2','3','4','5','6','7','8','9','a',
        'b','c','d','e','f','g','h','i','j','k',
        'l','m','n','o','p','q','r','s','t','u','v',
        'w','x','y','z','A','B','C','D','E','F','G',
        'H','I','J','K','L','M','N','O','P','Q','R',
        'S','T','U','V','W','X','Y','Z','[',']','~',
        '.','\'',',','/','\\',':','!','?','@','#','$',
        '%','^','&','*','(',')','<','>','_','+','|',
        '~','`','{','}','-','=',';','"'};
int count=0;

void print(int *m,FILE *fp)
{
    int i;
    for(i=0;m[i]==0;i++);
    while(i<=N)
    {
        fprintf(fp,"%c",a[m[i]]);
        i++;
    }
    fprintf(fp," ");
}

void cy(char *a,int n,FILE *fp)
{
    int k,l,m[N+1]={0};
    if(fp==NULL)return;
    for(int i=1,j=n;j>0;)
    {
        k=n;
        m[k]=1;
        while(a[i]!='\0')
        {
            print(m,fp);
            m[k]++;
            i++;
            count++;
        }
        i=1;
        while(m[k]==96)
        {
            m[k]=1;
            k--;
            m[k]++;
        }
        for(l=0;m[l]==0;l++);
        j=l;
    }
   
}

main()
{
    FILE *fp;
    fp=fopen("c:\\a.txt","w");
    if(fp==NULL)return 0;
    cy(a,N,fp);
    printf("%d",count);
}

[此贴子已经被作者于2017-7-8 11:44编辑过]

2017-07-07 20:56
快速回复:新人求助,编写一个声称所有可能密码的程序,有思路就好
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015721 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved