java – Algoritmo Flood Fill no funciona correctamente

Tengo problemas al implementar el algoritmo Flood Fill en Java, he visto ejemplos pero no me funciona del todo bien, no convierte todos los elementos, se supone que desde un punto central, tiene que ir creciendo mientras va cambiando los elementos que son iguales por el nuevo valor.

Tengo la siguiente matriz

1 1 1 1 1
1 1 1 1 1
1 1 1 1 1
1 1 1 1 1

Aplico el algoritmo desde la columna 3 y fila 2 y al imprimir la matriz queda de la siguiente manera:

1 1 1 2 2 
1 1 1 2 2 
1 1 1 2 2 
1 1 1 2 2 

Pero comenzando desde la posición 0,0 este funciona correctamente.

2 2 2 2 2 
2 2 2 2 2 
2 2 2 2 2 
2 2 2 2 2 

Parece que funciona bien avanzando en filas de arriba hacia abajo y viceversa, pero en las columnas que seria x-1, no funciona, solo en x+1.

Este es el código del algoritmo que tengo hasta ahora:

private static void floodFill(int()() array, int x, int y, int newValue) {
    int value = array(x)(y);
    
    if(value != newValue) {
        replace(array, x, y, value, newValue);
    }
    
}

private static void replace(int()() array, int x, int y, int value, int newValue) {
    if(x < 0 || x >= array.length || y < 0 || y >= array(0).length || array(x)(y) != value) {
        return;
    }
    
    array(x)(y) = newValue;
    
    replace(array, x + 1, y, value, newValue);
    replace(array, x - 1, y, value, newValue);
    replace(array, x, y + 1, value, newValue);
    replace(array, x - 1, y, value, newValue);
}

Y el método main

public static void main(String() args) {
    int()() array = {{1,1,1,1,1},
                     {1,1,1,1,1},
                     {1,1,1,1,1},
                     {1,1,1,1,1}};
    
    floodFill(array, 0, 0, 2);
    
    printArray(array);
}

private static void printArray(int()() array) {
    for (int i = 0; i < array.length; i++) {
        for (int j = 0; j < array(0).length; j++) {
            System.out.print(array(i)(j) + " ");
        }
        System.out.println();
    }
    System.out.println();
}

Espero que me puedan ayudar, muchas gracias.

.net – Criar um algoritmo para determinar um vencedor de um torneio com C#

Com base em uma lista que recebo com 8 times, preciso criar uma chaveamento de competição entre eles e retornar o 2 finalista informando o vencedor e o segundo colocado como retorno.
Para determinar os confrontos a regra e a seguinte com base na posição da lista:

Rodada 1

  • 1 – Posição 0 vs Posição 7
  • 2 – Posição 1 vs Posição 6
  • 3 – Posição 2 vs Posição 5
  • 4 – Posição 3 vs Posição 4

Rodada 2

  • 1 – Vencedor 1 vs Vencedor 4
  • 2 – Vencedor 2 vs Vencedor 3

Rodada 3

As regras para determinar o vencedor são:

  • Vence o que tiver maior pontuação
  • Se a pontuação for igual, verifica qual tem mais vitorias.

Vou colocar o código que consegui construir, nele consigo fazer a primeira competição entre o Primeiro e Ultimo time, porém não consegui pensar em como fazer um loop que irá fazer o mesmo com todos os times da lista e me retorne o vencedor e segundo colocado.

 public async Task<ListaTimes > Times(ListaTimes times)
        {
           //ordeno os times em ordem alfabética na lista
            var ordenaTimes = times.OrderBy(t => t.Nome);

           //passo os times ordenados para o algorítimo que determinará o vencedor
            var competicao = Competicao(ordenaTimes);

            return competicao ;
        }

//Algoritimo que preciso que determine o vencedor e segundo colocado da competição
public static ListaTimes Competicao(IOrderedEnumerable<ListaTimes> times)
        {
            var ultimo = games.Count();
            ListaTimes time1 = null;
            ListaTimes time2 = null;
            ListaTimes vencedor = null;

            for (int i = 0; i < times.Count(); i++)
            {
                time1 = games.ElementAt(i);
                time2= games.ElementAt(ultimo - i);

                if (time1.Pontos != time2.Pontos)
                {
                    if (time1.Pontos> time2.Pontos)
                    {
                        vencedor = time1;
                        return vencedor;
                    }
                    else
                    {
                        vencedor = time2;
                        return vencedor;
                    }
                }

                    if (time1.Vitorias > time2.Vitorias)
                    {
                        vencedor = time1 ;
                        return vencedor;
                    }
                    else
                    {
                        vencedor = time2;
                        return vencedor;
                    }
                
            }

            return vencedor;
        }

algoritmo – C: Como fazer a leitura de um numero indeterminado de inteiros na mesma linha que ainda reconheça n?

Preciso fazer a leitura de um numero indeterminado de inteiros na mesma linha para passar para uma lista encadeada, entretanto caso nenhum numero seja entrado(“n”), ainda preciso reconhecê-lo para tratá-lo.

Exemplo de entrada para 5 listas encadeadas:
1 2
3 1
“n”
3
1 4

existe algum algoritmo para isso?

Como criar o algoritmo Perlin Noise com Python?

Estou tentando desenvolver um programa em Python que gere ilhas de formatos aleatórios, para usar em um jogo que também estou desenvolvendo. Pesquisei muito sobre o assunto e vi que um dos melhores métodos seria usar o Perlin Noise, ruído de perlin.
Não, entendi muito sobre o algoritmo, e nem consegui o material que fosse bom para estudar o assunto.

Gostaria de saber se alguém sabe como fazê-lo, ou ao menos algo parecido.

array – ALGORITMO VISUALG – MOSTRAR O NÚMERO DE REPETIÇÕES DE UMA LETRA NUMA PALAVRA

Ola !!!

Estou desenvolvendo um Algoritmo em que a pessoa digita uma palavra qualquer e o programa mostre o número de repetições por letra na palavra.

Por exemplo: ALANA .

Tem como resposta:

A = 3 /
L = 1 /
N = 1

Entretanto, nao consigo mostrar somente isso, so consigo fazer com que mostre todas as letras. No caso

A = 3 /
L = 1 /
A = 3 /
N = 1 /
A = 3

Não queria que se repetissem letras que já foi feita a análise. Mas infelizmente parei aqui e não consigo deixar como gostaria.

Agradeço demais toda a ajuda.

Aqui vai o programa

Var

palavra, letra, comparacao : caractere

i , j , cont : inteiro

Inicio

escreval

escreva(“Digite uma palavra: “)

leia(palavra)

escreval

para i de 1 ate compr(palavra) faca

letra := copia( palavra, i , 1 )

para j de 1 ate compr(palavra) faca

     comparacao := copia( palavra, j , 1 )
 
      **Se letra = comparacao entao**
      
         cont := cont + 1
         
      **fimse
 
 fimpara**

 
 

escreval(letra , ” = “, cont)

escreval

cont := 0

fimpara

Fimalgoritmo

algoritmo – Alguém possui o algorítimo ou fórmula matemática para calcular e validar os novos RG´s “13 dígitos numéricos” emitidos no Estado do Maranhão?

Eu já procurei no Google sobre algorítimo ou fórmula matemática para validar os novos RG´s emitidos no Estado do Maranhão que contém 13 dígitos numéricos e não há nada que possa ajudar a entender o cálculo do dígito verificador, apenas foi lozalizado para RG que contém 8 dígitos.

Alguém que tenha acesso ao algorítimo ou formula matemática poderia compartilhar aqui ?

Logo após eu mesmo irei colocar o resultado, em javascript, para que todos da comunidade possam utilizar quando necessário.

Segue um exemplo de um RG válido no Maranhão (xxxxxxxxxxxx-d): 061081822017-0

Ou seja: (numero)(ano)-(dv)

Desde já agradeço.

Como o kernel do sistema operacional é acordado para executar o algoritmo de escalonamento Shortest Job First preemptivo?

Nos livros de sistemas operacionais, nos capítulos de algoritmos de escalonamento, há a descrição do Shortest Job First preemptivo (SRTF). Em todos os livros que li e videoaulas no youtube que assisti, é dito que a chegada de um novo processo na fila dos prontos, que possua tempo de CPU inferior ao processo atual em execução irá causar a sua preempção. Mas como o kernel é acordado para colocar o escalonador em execução e consequentemente fazer a escolha do menor processo? Não há menção a time-slice, quantum ou interrupção do timer. Obrigado.

arraylist – Problema algoritmo Knn en R

estoy intentando ejecutar el algoritmo knn con e siguiente código en R:

library(MASS)
library(tidyverse)
library(dplyr)
library(datasets)
library(lattice)
library(caret)
#Cargar la librería caTools
library(caTools)

# Dibujar matriz de correlación
library(corrplot)
library(future)

# Cargar la librería GGally
library(GGally)

creditcard %<-% read.csv( file = "creditcard.csv",header = TRUE, sep = ",", dec ="." )
glimpse(creditcard)

entrenamiento_index %<-% createDataPartition( y= creditcard$Class,p=0.75,list = FALSE)

# Creamos un data frame
creditcard_entrenamiento %<-% creditcard(entrenamiento_index,)
creditcard_test %<-% creditcard(-entrenamiento_index,)

prop.table(table(creditcard_entrenamiento$Class))
prop.table(table(creditcard_test$Class))

p.creditcard <- 10

r.creditcard <- 5

v.knn_vector <- vector(mode = "list", length = (p.creditcard * r.creditcard) + 1)
for (i in 1:(p.creditcard * r.creditcard)) {
    v.knn_vector((i)) <- sample.int(1000, 1) 
}

v.knn_vector(((p.creditcard * r.creditcard) + 1)) <- sample.int(1000, 1)

# Definición del entrenamiento de Knn

Creditcard_knn_ctrl <- trainControl(method = "repeatedcv", number = p.creditcard,
                                repeats = r.creditcard, seeds = v.knn_vector,
                                returnResamp = "final", verboseIter = FALSE,
                                allowParallel = TRUE)

# Ajustes del modelo Sperman con la matriz Person

Mod_knn_creditcard <-train(Class ~ ., data = creditcard_entrenamiento,
                       method = "knn",
                       metric = ifelse(is.factor(y), "Accuracy", "RMSE"),
                       trControl = Creditcard_knn_ctrl)

La salida obtenida de la ejecución de dicho código es:

Error: Bad seeds: the seed object should be a list of length 51 with 50 integer vectors of size 3 and the last list element having at least a single integer

Además: Warning message: In train.default(x, y, weights = w, …) : You are trying to do regression and your outcome only has two possible values Are you trying to do classification? If so, use a 2 level factor as your outcome column.

Hay algo que no veo y que estoy haciendo mal.

La obtención del dataset:

(https://www.kaggle.com/franckepeixoto/fraud-detection-exploratory-data-analysis-eda/data)(1)

Muchas gracias de antemano.