Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2012, 14:11   #1
kostan3
- Дорогой, а ты ку
Форумчанин
 
Регистрация: 06.10.2012
Сообщений: 181
Восклицание растяние хэмминга

написал решение этой!!! задаче но мне выдало ошибку компиляции можете исправить мой код что бы он скомпилировался и желательно
приводить полный код а то я в javа чайник




Код:
import java.io.*;
import java.util.*;
import java.math.*;

public class hamming_ft implements Runnable {

    private Scanner in;
    private PrintWriter out;

    int oneCnt(BigInteger x) {
        int res = 0;
        while (x.compareTo(BigInteger.ZERO) > 0) {
            res++;
            x = x.and(x.subtract(BigInteger.ONE));        
        }
        return res;    
    }

    int hd(BigInteger a, BigInteger b, int len) {
        return a.xor(b).bitCount();
    }

    public void run() {
        String st = in.nextLine().trim();
        int len = st.length();
        BigInteger m = new BigInteger(st, 2);
        int n = in.nextInt();
        in.nextLine();
        BigInteger[] s = new BigInteger[n];
        for (int i = 0; i < n; i++) {
            s[i] = new BigInteger(in.nextLine().trim(), 2);
        }
        int min = Integer.MAX_VALUE;
        int cnt = 0;
        for (int i = 0; i < n; i++) {
            int tmp = hd(m, s[i], len);
            if (tmp == min) cnt++;
            if (tmp < min) {
                min = tmp;
                cnt = 1;
            }
        }
        out.println(cnt);
        for (int i = 0; i < n; i++) {
            int tmp = hd(m, s[i], len);
            if (tmp == min) out.print((i + 1) + " ");
        }        
        out.close();
    }
    
    private hamming_ft(String name) {
        try {
            in = new Scanner(new File("input.txt"));
            out = new PrintWriter(new FileWriter("output.txt"));    
        } catch (IOException e) {
            e.printStackTrace();
            System.exit(239);
        }
    }

    public static void main(String[] args) {
        (new Thread(new hamming_ft("hamming"))).start();
    }
}
kostan3 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Кодирование Хэмминга Last Общие вопросы C/C++ 6 31.05.2017 21:22
Сокращение расстояния Хэмминга Molotoff Общие вопросы C/C++ 1 14.01.2011 11:48
Код Хэмминга 0479 Помощь студентам 0 12.11.2010 10:32
растояние Хэмминга semennn Помощь студентам 0 06.05.2009 19:11