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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2011, 00:22   #1
erathia
Новичок
Джуниор
 
Регистрация: 11.10.2011
Сообщений: 2
По умолчанию Роботы

Всем привет!
Есть задача:

Есть связный неориентированный граф, в вершинах графа находится несколько роботов. каждый ход роботы могут телепортироваться, перепрыгивая через одну вершину. Например, если граф выглядит так: (R)----(*)----(*), то на следующем ходу робот может остаться на месте, а может телепортироваться: (*)----(*)----(R). Если два или больше роботов телепортируются в одну вершину графа, они самоуничтожаются. Задача --- по заданному графу и заданному начальному расположению роботов определить, существует ли такая последовательность телепортаций, при которой все роботы самоуничтожатся.

Как можно реализовать метод шага для каждого робота?
Двигать самих роботв не нужно,а нужно как-то вот придумать метод,чтобы он нашел эту последовательность,при которой роботы уничтожаются

моя реализация кончилась вот этим:

Код:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;
import java.util.Random;

public class Graf {
p
    public void generateGraf() throws FileNotFoundException, IOException, FewRobotsException {

        String file = "src/robots/settings.properties";
        props = new Properties();
        props.load(new FileInputStream(file));
        numberNode = Integer.parseInt(props.getProperty("number_node"));
        String[] mass = props.getProperty("arrayAdjacency").split(",");
        encoding(mass);
        generateRobot();
    }

    private void encoding(String[] mass) {

        matrix = new int[numberNode][numberNode];
        int k = 0;

        for (int i = 0; i < numberNode; i++) {
            for (int j = 0; j < numberNode; j++) {
                matrix[i][j] = Integer.parseInt(mass[k]);
                k++;
            }
        }
        print(matrix);
    }

    /*private void generateField() {

        System.out.print("\nGeneric Field\n");
        field = new int[numberNode][numberNode];
        for (int i = 0; i < numberNode; i++) {
            for (int j = 0; j < numberNode; j++) {
                System.out.print(field[i][j] + " ");
            }
            System.out.println();
        }
    }*/

    public void generateRobot() throws FewRobotsException {

        Random rand = new Random();
        System.out.print("\nGeneric Robot\n");
        dota = Integer.parseInt(props.getProperty("dota"));
        rob = new int[numberNode];
        int count = 0;
        for (int i = 0; i < numberNode; i++) {
            int probability = rand.nextInt(2);
            if (probability < dota) {
                rob[i] = 1;
                count++;
            } else {
                rob[i] = 0;
            }
        }
        if (count >= numberNode) {
            System.out.println("Such a sequence exists");
            return;
        }

        if (count <= 1) {
            throw new FewRobotsException("Requires a minimum of two robot");
        }
        printArray(rob);
        //generateField();
        stepsRobot();
    }

    private void stepsRobot() {

        for (int i = 0; i < numberNode; i++) {
            for (int j = 0; j < numberNode; j++) {
                if (rob[i] != 0) {
                    
                }
            }
        }
    }

    private void printArray(int[] array) {

        System.out.println();
        for (int i = 0; i < numberNode; i++) {
            System.out.print(array[i] + " ");
        }
        System.out.println();
    }

    private void print(int mass[][]) {

        for (int i = 0; i < mass.length; i++) {
            System.out.println();
            for (int j = 0; j < mass.length; j++) {
                System.out.print(mass[i][j] + " ");
            }
        }
        System.out.println();
    }
    private Properties props;
    private int[][] field;
    private int[] rob;
    private int[][] matrix;
    private int numberNode;
    private int dota;
}
хватит срать на форуме, форматируйте код тегами CODE//модератор

Последний раз редактировалось alexinspir; 12.10.2011 в 06:03.
erathia вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Свободный опрос - Роботы Виталий Желтяков Свободное общение 15 20.03.2011 16:28
Промышленные роботы/Lua Sad Jester Помощь студентам 0 09.10.2010 18:27
Ошибка роботы с фалом Fatummors Общие вопросы C/C++ 2 10.03.2010 10:42
Роботы Levsha100 Микроконтроллеры, робототехника, схемотехника, 3D принтеры 8 09.12.2009 21:46
Начало роботы в Делфи sv2311 Помощь студентам 5 04.04.2009 02:29