Wyjaśnienie permutacji w Javie [z przykładami kodowania]

Opublikowany: 2020-11-24

JAVA została opracowana przez Jamesa Goslinga w Sun Microsystems w 1995 roku. Korzystając z JAVA, programiści mogą tworzyć stabilne, bezpieczne i odporne aplikacje, które mogą działać na prawie każdej platformie — w tym na systemach operacyjnych opartych na systemach Linux, Windows i macOS.

Właściwość JAVA Write Once, Run Always (znana również jako WORA) również oszczędza potrzebę ponownej kompilacji kodu, który został już raz skompilowany w sposób zadowalający. Ta wszechstronność JAVA sprawia, że ​​jest to idealny język do integracji wbudowanych złożonych funkcji logicznych i matematycznych w prawie wszystkich typach aplikacji wieloplatformowych.

Zalety korzystania z JAVA do tworzenia aplikacji internetowych, w przeciwieństwie do jakiegokolwiek innego alternatywnego (lub popularnego) środowiska programistycznego, obejmują trzy główne filary trwałych korzyści aplikacji, a mianowicie:

  1. Składnia JAVA jest łatwa do nauczenia, łatwa do dostosowania i odpowiednia dla programistów na każdym poziomie tempa i złożoności. To sprawia, że ​​JAVA jest bezpiecznym zakładem dla zespołów programistycznych, które podlegają częstym zmianom personalnym. Czas potrzebny na dostosowanie się nowego zasobu do wspólnej platformy programistycznej (JAVA) jest jednym z najmniejszych w branży.
  2. JAVA jest językiem programowania zorientowanym obiektowo wysokiego poziomu, co czyni go całkowicie modułowym w podejściu i daje programistom możliwość tworzenia fragmentów kodu, których można używać wielokrotnie, redukując w ten sposób wysiłek. Ogromna biblioteka wbudowanych funkcji zmniejsza również zależność od innych wtyczek trzeciorzędnych lub dodatków kompilatora, skryptów itp. – co z kolei zapewnia JAVA jeden z najkrótszych czasów implementacji.
  3. JAVA łączy to, co najlepsze ze wszystkich światów, będąc niezależną od platformy, jak omówiono powyżej. Aplikacja internetowa napisana w JAVA może być łatwo przeniesiona z jednego systemu operacyjnego do drugiego bez utraty funkcjonalności, co jest bezcennym narzędziem w każdym środowisku programistycznym.

Jako jeden z aspektów, który sprawia, że ​​JAVA jest tak lukratywna jako platforma programistyczna dla sieci, jej minimalne zależności implementacyjne i matematycznie poprawna składnia mogą być hojnie wykorzystane do wykonywania prawie wszystkich instrukcji matematycznych lub logicznych, po prostu wywołując wbudowaną funkcję z minimalnym dodatkowym dostosowywanie.

Jednym z najjaśniejszych przykładów tej elastyczności w kodzie jest możliwość wykonywania permutacji w języku JAVA — a dokładniej, prawdziwie losowej i znajdowania wszystkich możliwych permutacji wszystkich znaków dostępnych w określonym ciągu.

W tym samouczku z przewodnikiem dowiemy się, jak spróbować wykonać tę permutację w JAVA, przechowując pierwszy znak ciągu w „śledzonej” lokalizacji ciągu i wywołując funkcję generatePermutation() w celu losowania różnych odmian ze wszystkimi innymi znaków w ciągu.

Przeczytaj: Pytania i odpowiedzi dotyczące rozmowy kwalifikacyjnej w języku Java

Spis treści

Permutacje w Javie — koncepcja algorytmu cofania

Aby znaleźć rozwiązanie tego problemu permutacji w JAVA , musimy najpierw zapoznać się z pojęciem, które stało się szeroko akceptowane w społeczności twórców stron internetowych, jako algorytm Algorytm wycofywania jest procesem rekurencyjnym, który polega na okresowym ustalaniu jednego znaku z danego ciągu i łączeniu go ze wszystkimi możliwymi permutacjami wszystkich innych znaków oraz powtarzaniu tego procesu ze znakami w każdej pozycji ciągu indywidualnie, aby osiągnąć maksimum (i wszystkie możliwe) liczby wariacji dla tego ciągu.

Ten algorytm permutacji w JAVA jest łatwiejszy do zrozumienia w kontekście danego ciągu z trzema znakami. Załóżmy, że te trzy znaki w danym ciągu to A, B i C.

Pierwszym krokiem do wykonania tej permutacji w JAVA jest naprawienie jednego znaku (zawsze zaczniemy od ustalenia znaku dostępnego na pierwszej pozycji), a następnie wykonanie zamiany ze wszystkimi pozostałymi znakami, łącząc je z oryginałem ( stały) znak.

Na przykład w przykładzie ciągu ABC wykonamy nasze pierwsze trzy iteracje ciągu, poprawiając znak A (który jest Następnie dochodzimy do następujących kombinacji: ABC , BAC i CBA .

Następnym krokiem jest podobne „ naprawienie ” znaku znajdującego się na następnej pozycji ciągu (w tym przypadku znaku znajdującego się na drugiej pozycji ciągu, czyli B ) i zamiana pozostałych znaków (w tym znaku, który został W końcu będziemy powtarzać ten krok na każdym osiągniętym poziomie randomizacji, aż dojdziemy do pełnego zestawu wszystkich możliwych permutacji:

ABC

ACB

BAC

BCA

CBA

TAKSÓWKA

W sekcji przykładowy kod/pożądane dane wyjściowe, dostępnej na końcu tego artykułu, zamienimy tę próbę wykonania permutacji w JAVA w czytelny kod, a tym samym zobaczymy, jak permutacje są obliczane w czasie rzeczywistym.

Wykonywanie permutacji w JAVA — algorytm rekurencyjny do cofania i zamiany

Zwięzłe podsumowanie procesu pobrania losowego ciągu i wykonania dokładnej permutacji w JAVA można opisać następującym algorytmem rekurencyjnym krok po kroku:

  1. Definicja ciągu — najpierw zdefiniuj ciąg. Zawsze możesz zaakceptować losowy ciąg jako zmienną wejściową, ale dla jasności celu i wysiłku w tym przykładzie użyjemy predefiniowanego ciągu ABC.
  2. Naprawianie postaci - Napraw jedną postać (zacznij od postaci na pierwszej pozycji i kontynuuj zamianę na wszystkie pozostałe znaki).
  3. generatePermutation() — Wywołaj i użyj danych wyjściowych funkcji generatePermutation() dla wszystkich pozostałych znaków.
  4. Rekurencyjne wycofywanie — wykonaj algorytm „wycofywania” i rekurencyjnie zamieniaj znaki, aż kod osiągnie koniec ciągu (w naszym obecnym przykładzie do C).

Wykonywanie permutacji w JAVA — przykładowy kod:

public class PermuteString {

//definiowanie funkcji do zamiany znaków na pozycji i ze wszystkimi znakami na pozycji j

public static String swapString(String a, int i, int j) {

// definicje znaków dla stałych znaków w łańcuchu

char[] b =a.toCharArray();

znak ch;

// wykonanie zamiany w kolejnym kroku

ch = b[i];

b[i] = b[j];

b[j] = ch;

return String.valueOf(b);

}public static void main(String[] args)

{

//definiowanie domyślnego ciągu ABC

Ciąg str = „ABC”;

//liczenie długości ciągu

int dł = str.długość();

//drukowanie wszystkich randomizacji

System.out.println(„Poniżej znajdują się wszystkie możliwe permutacje ciągu ABC:”);

generatePermutation(str, 0, len);

}

//definiowanie funkcji do generowania wszystkich możliwych permutacji ciągu

public static void generatePermutation(String str, int start, int end)

{

// drukowanie wszystkich permutacji

jeśli (początek == koniec-1)

System.out.println(str);

w przeciwnym razie

{

for (int i = początek; i < koniec; i++)

{

//naprawianie znaku, aby zamienić ciąg

str = swapString(str,start,i);

//rekurencyjne wywołanie funkcji generatePermutation() dla wszystkich pozostałych znaków generatePermutation(str,start+1,end);

//wykonywanie algorytmu cofania, aby ponownie zamienić znaki

str = swapString(str,start,i);

}

}

}

}

Wykonywanie permutacji w JAVA — dane wyjściowe pochodzące z przykładowego kodu:

Kiedy skompilujesz i uruchomisz ten przykład, pożądany wynik powinien wyglądać mniej więcej tak:

Poniżej znajdują się wszystkie możliwe permutacje ciągu ABC:

ABC

ACB

BAC

BCA

CBA

TAKSÓWKA

Musisz przeczytać: Ciekawe projekty i tematy Java

Wniosek

Mamy nadzieję, że ten samouczek okazał się przydatny do przeprowadzania permutacji w JAVA.

Jeśli chcesz dowiedzieć się więcej o Javie, programach OOP i tworzeniu pełnego stosu oprogramowania, zapoznaj się z dyplomem PG upGrad i IIIT-B w zakresie pełnego tworzenia oprogramowania, który jest przeznaczony dla pracujących profesjonalistów i oferuje ponad 500 godzin rygorystycznego szkolenia, 9 + projekty i zadania, status absolwentów IIIT-B, praktyczne praktyczne projekty zwieńczenia i pomoc w pracy z najlepszymi firmami.

Przygotuj się na karierę przyszłości

BRANŻOWE ZAUFANIE NAUKI - CERTYFIKACJA UZNANA W BRANŻY.
Ucz się więcej