zoukankan      html  css  js  c++  java
  • 分布式系统K可靠算法

    环境 VC6.0 控制台
    代码
    #include<stdio.h>
    #include<stdlib.h>
    #include <memory.h>
    #define  SIZE_NODE 100
    #define  SIZE_BLOCK 15

    void main()
    {
        
    int n = 0, m = 0;
        printf("请输入 节点数(小于等于%d的正整数):",SIZE_NODE);
        scanf("%u"&n);
        
    while ( n > SIZE_NODE )
        {
            printf("节点数超出了范围!\n");
            printf("请输入 节点数(小于等于%d的正整数):",SIZE_NODE);
            scanf("%u"&n);
            fflush(stdin);
        }
        fflush(stdin);
        printf("请输入文件块数(小于等于%d的正整数):",SIZE_BLOCK);
        scanf("%u"&m);
        
    while ( m > SIZE_BLOCK )
        {
            printf("文件块数超出了范围!\n");
            printf("请输入文件块数(小于等于%d的正整数):",SIZE_BLOCK);
            scanf("%u"&m);
            fflush(stdin);
        }
        printf("\n节点数:%d,文件块数:%d\n",n,m);

        
    /*动态分配二维数组*/
        
    bool isFormatErr = false//判断格式错误
        int  max_antiFactor = 0//最大反分布式系数
        int  dist_coefficient = 0//分布式系数
        int  *antiFactor_arrary = (int*)malloc(sizeof(int)*m); //反分布式系数数组
          memset(antiFactor_arrary, 0, m*sizeof(antiFactor_arrary));//初始化数组值为0
        char **node_array = (char**) malloc(sizeof(char *)*n);//节点数组
        for ( int i = 0; i < n; ++i)
        {
            node_array[i]=(char *)malloc(sizeof(char)*m);
            
    do
            {
                printf("请输入第%d个节点(%d位0 1数):",i+1,m);
                fflush(stdin);
                scanf("%s",node_array[i]);
                
    for (int j = 0 ; j < m ; ++j)
                {
                    
    if (node_array[i][j] != '0' && node_array[i][j] != '1')
                    {
                        isFormatErr = true;
                        printf("第%d个节点输入了非0 1的非法字符!请重新输入\n",i+1);
                        
    break;
                    }
                }
                
    if ( j == m )
                {
                    
    for (j = 0 ; j < m ; ++j)
                    {
                        
    if (node_array[i][j] == '0')
                            antiFactor_arrary[j]++;        
                    }
                    
    isFormatErr = false;
                }
            } while (isFormatErr);

        }
        printf("\n%d %d\n",n,m);
        
    for ( i = 0; i < n; ++i)
        {
            printf("%s\n",node_array[i]);
            free(node_array[i]);
        }
        max_antiFactor = antiFactor_arrary[0];
        
    for (int j = 1 ; j < m ; ++j)
        {
            
    if (antiFactor_arrary[j] > max_antiFactor)
                max_antiFactor = antiFactor_arrary[j];
        }
        dist_coefficient = n - max_antiFactor;
        printf("分布式系数为:%d\n",dist_coefficient);
      free(antiFactor_arrary);
        free(node_array);
    }
  • 相关阅读:
    Openstack API 开发 快速入门
    virtualBox虚拟机到vmware虚拟机转换
    使用Blogilo 发布博客到cnblogs
    Openstack Troubleshooting
    hdoj 1051 Wooden Sticks(上升子序列个数问题)
    sdut 2430 pillars (dp)
    hdoj 1058 Humble Numbers(dp)
    uva 10815 Andy's First Dictionary(快排、字符串)
    sdut 2317 Homogeneous squares
    hdoj 1025 Constructing Roads In JGShining's Kingdom(最长上升子序列+二分)
  • 原文地址:https://www.cnblogs.com/pbreak/p/1858053.html
Copyright © 2011-2022 走看看