Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
alexgoldbug
1

Задача Хемминга

25.05.2011, 17:32. Показов 2740. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
вопрос заключается в следующем. Была написана программа, по данному заданию, но очень медленно работающая, необходима помощь в создании более оптимального кода с ускоренной работой программы

Задание:
Задача Хемминга (20 мин., 200 баллов)
Для каждого из трёх простых чисел p1, p2 и p3 надо определить
последовательность Хемминга H(p1, p2, p3), которая содержит все натуральные
числа, расположенные по возрастанию, для которых единственными простыми
делителями являются или p1, или p2, или p3. Найти i-й член последовательности
Hi(p1, p2, p3).
Пример, H(2, 3, 5) = 2, 3, 4, 5, 6, 8, 9, 10, 12, 15, 16, 18, 20, 24, 25, 27,...
Таким образом: H5(2, 3, 5)=6.
Все числа в исходных данных и результате не должны превышать 1015-1.
Входной файл (input.txt) состоит из одной строки, которая содержит целые
десятичные числа p1, p2, p3 и i, отделённые друг от друга пробелом. Входной
файл не заканчивается символом перевода строки.
Выходной файл (output.txt) содержит одно целое число— Hi(p1, p2, p3).
Выходной файл не должен заканчиваться символом перевода строки.
Пример:
Входные данные
7 13 19 100
Результат
26590291

Код программы которую написали(но не оптимальная):

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
using System;
 
    class Programm{
    
        static void Main(){
        int p1=2;
        int p2=3;
        int p3=5;
        int i=100;
        
        //OPTION #1
        
        //find the prime numbers
        bool[] table = new bool[100000000];
        int k,j;
        int x=0;
        int y=0;
        for ( k = 0; k <table.Length; ++k )
                table[k] = true;
        for ( k = 2; k*k <table.Length; ++k )
           if ( table[k] )
        for ( j = 2*k; j <table.Length; j += k )
            table[j] = false;
        for ( k = 2; k <table.Length; ++k )
            if ( table[k] )++x;
        int[] primes = new int[x-3];        
        for ( k = 2; k <table.Length; ++k )
            if ( table[k]&&k!=p1&&k!=p2&&k!=p3 ){primes[y]=k;++y;}
        //end of find the prime numbers
        //for (k=0;k<primes.Length;++k)
        //  Console.WriteLine(primes[k]);
        
        int q=0;
        int e=0;
        int z=p1;
        int[] hemming = new int[i];
        while(q<i){
                //Console.WriteLine(q);     Console.WriteLine(z);
            if(z%p1==0||z%p2==0||z%p3==0)e=1;
            for (int t=0;primes[t]<=z;++t){
                //Console.WriteLine(primes[t]);
                if(z%primes[t]==0)e=2;              
            }
            //Console.WriteLine(e);
            if(e==2)++z;
            if(e==1){hemming[q]=z;++z;++q;}
        Console.WriteLine(q);
        Console.WriteLine(z);
        }
        for (k=0;k<hemming.Length;++k)
        Console.WriteLine(hemming[k]);
                
        
    }
}
Заранее спасибо!
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2011, 17:32
Ответы с готовыми решениями:

Применение нейронных сетей Хопфилда и Хемминга для решения задач коммивояжера
Всех приветствую! Дали тему курсовой, Применение нейронных сетей Хопфилда и Хемминга для решения...

Код Хемминга C#
Имеется char-массив на 5 элементов, содержащий нули и единицы. Надо инвертировать один бит (ну это...

Код Хемминга: перевести с C на C#
Имеется сайт ссылка но там код написан на с, а как переделать в C#. собственно сам код /*...

Написать программу для кода Хемминга
нужно написать программу для кода Хемминга желательно на С# в консоли! Добавлено через 23...

1
alexgoldbug
27.05.2011, 13:23 2
сказали сделать по формуле p1^x*p2^y*p3^z, но что то у меня не получается
27.05.2011, 13:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.05.2011, 13:23
Помогаю со студенческими работами здесь

Код хемминга
Помогите понять ,почему через раз обнаруживается вдойная ошибка? namespace...

Код Хемминга,задача.
Помогите пожалуйста решить,у меня зачётная неделя а я эту тему пропустил. 1)Построить по методу...

Код Хемминга
В одномерном массиве размерности n записан элементарный код, требующий кодирования. Даны разряды в...

Код Хемминга
Определить положение одиночной ошибки в искаженном двоичном k-битном слове кода Хемминга через...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru