jak zaprogramowac generowanie reguł

jak zaprogramowac generowanie reguł
0

Cześć,

Jak zaprogramować generowanie reguł w języku JAVA
Podam przykład dla 3 elementów ale im możne być n

{AB}
{ABC}
{ABCD}

A -> B
B -> A

AB -> C
AC -> B
BC -> A

ABC -> D
ABD -> C
ACD -> B
BCD -> A

Macie może pomysł na kod który będzie generował takie reguły dla n wartości ?

Atlas500
  • Rejestracja:około 11 lat
  • Ostatnio:prawie 9 lat
  • Postów:82
0
Kopiuj
String test = "ABD";
ArrayList<Character> al = new ArrayList<>();
al.add('A');
al.add('B');
al.add('C');
al.add('D');
for(int i=0; i<test.length(); i++){
	al.remove((Character)test.charAt(i));
}
System.out.println(al);

"Jeżeli człowiek to wymyślił, człowiek może to zrozumieć." Sochacki
edytowany 1x, ostatnio: Atlas500
0

Dzięki ale u mnie to nie działa?

--------------------Configuration: <Default>--------------------
[]

Process completed.

Atlas500
  • Rejestracja:około 11 lat
  • Ostatnio:prawie 9 lat
  • Postów:82
0

Tu nie ma co nie działać. Jak to zaimplementowałeś?


"Jeżeli człowiek to wymyślił, człowiek może to zrozumieć." Sochacki
wiciu
  • Rejestracja:ponad 11 lat
  • Ostatnio:8 dni
  • Postów:1205
0

Wygląda na to, że nieprecyzyjnie się wyraziłeś lub źle Cię zrozumiałem.
Te "reguły" wyglądają trochę jak kombinacje ( http://pl.wikipedia.org/wiki/Kombinacja_bez_powt%C3%B3rze%C5%84 ). W Javie prawie do wszystkiego są biblioteki. Do kombinacji również. Np. https://code.google.com/p/combinatoricslib/ . Możesz spróbować wykorzystać to rozwiązanie lub inne podobne i dostosować je do Twojego problemu.

Atlas500
  • Rejestracja:około 11 lat
  • Ostatnio:prawie 9 lat
  • Postów:82
0

"Potrzebuję algorytmu na określenie wszystkich kombinacji bez powtórzeń po n-1 elementów." To chciałeś napisać w pierwszym poście.
przykładowe rozwiązanie:

Kopiuj
ArrayList<Character> al = new ArrayList<>();
char capital;
al.add('A');
al.add('B');
al.add('C');
al.add('D');
al.add('E');
al.add('F');
for(int i=0; i<al.size(); i++){
	capital = al.get(i);
	al.remove(i);
	System.out.println(al);
	al.add(i, capital);
}

"Jeżeli człowiek to wymyślił, człowiek może to zrozumieć." Sochacki
edytowany 2x, ostatnio: Atlas500
0

Atlas500, Wiciu bardzo dziękuje za informacje bardzo mi się przydały :)

Kopiuj
                
String linia= "AAA;BBB;CCC;DDD";   
List<String> alist1 = new ArrayList <String>();      
StringTokenizer st1 = new StringTokenizer(linia,";");
String atemp = "";

while (st1.hasMoreElements())
{
	atemp = (String) st1.nextElement();
	alist1.add(atemp);
}
       
System.out.println("string = "+ alist1);
System.out.println("liczba stringtokenizer = "+alist1.size());
System.out.println("*******************************************");

for(int i=0; i<alist1.size(); i++)
{
	int itemp = (alist1.size() - i - 1);
	atemp = alist1.get(itemp);
	alist1.remove(itemp);
	System.out.print(alist1);
	System.out.println(" -> "+atemp);
	alist1.add(itemp, atemp);
}
edytowany 1x, ostatnio: bogdans
BR
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 11 lat
  • Postów:1
0

Jeszcze raz bardzo dziekuje

edytowany 1x, ostatnio: bruce

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.