21. oktober 2001 - 20:19Der er
4 kommentarer og 1 løsning
Sortering af array og over som indeks i et ny array
Har følgendespørgsmål.
Har et string array bestående af f.eks. tcgactacgatcgac. Min klasse får 2 int parametre, samt mitArray som input. Det jeg nu skal gøre er, at bruge disse integers som start positioner til MitArray. Nu skal jeg sammenligne 5 tegn ad gangen. F.eks. hvis jeg starter ved position 0 og position 9. Så skal jeg sammenligne tcgac med tacga. De tegn der har den mindste værdi bliver markeret som 0 i et ny array. Så det jeg egentlig gør er at jeg laver et indekseret Array af MitArray der viser hvordan MitArray \"er\" sorteret. Hvis jeg f.eks.har 2 ens 5 x tegn ja så ses det i mit indekseret array som f.eks. 0,0
class sorter { private int[]mitIndeksetArray; public sorter(String[] mitArray, int a, int b) {
/* tag a og b. som startpositioner til mitArray. traverser mitArray for at finde ens tegn og for at alfabetiseret mit Array. Hele resultatet lægges over i mit indekserede mitIndeksetArray. MitIndekseretArray kunne f.eks se sådan ud. 0,0,1,2,3,4,5,6,6,7 osv. **/ mitIndeksetArray = //traverser MitArray, sorter find ens og lav indeks og læg dette over i mitIndekseretArray
}
}
Vil meget gerne se noget kode. Har brugt MEGET lang tid på dette her, og sidder fuldstændig fast. Har virkelig brug for noget hjælp.
Du siger, du har et string array, men viser en enkelt string. Dernæst alt det med de mindste værdier bliver markeret som 0, er det A i dit tilfælde, og betyder det så ikke, at din eksempel string bliver til 312013012031201 ??
Er det noget med DNA du roder med ? Synes jeg kan huske de 4 bogstaver du bruger.
Forsøger du at finde ud af om noget af dit array bliver gentager andrer steder i dit array ?
hvis det er det du søger.
Kan du bruge et princip man anvender i digital signal behandling, det hedder cirkulær korrelation. Det bliver brugt til at undersøge om en signal på en eller anden måde gentager sig selv.
Disky lige netop det er DNA jeg roder med. Vedr mindste værdi så er det f.eks. atbcg(som vil får tildelt værdien 0) derefter kommer atccg(som vil få tildelt værdien 1) osv. Jeg forsøger at sortere mit array samt at finde gentagelser. Efter sorteringen vil mit indekserede array kunne se sådan ud array
0,0,1,2,3,4,4,5,6,7,8,8,
hvor 0,0 og 4,4 og 8,8 indikerer at jeg har to ens dna \"ord\" og alle integers indikerer den alfabetiserede rækkefølge
Logical. Sorry det er ikke en streng jeg har men et array. MitArray {t,c,g,t,c,g,c,g,t,g,f,c,d} osv.
Sådan, som jeg har forstået det, så repræsenterer b slut-værdien for, hvilke bogstaver, der skal sorteres. Er det rigtigt?
Hvis det er, så kan du oprette et temp-array, hvor hvert index indeholder 5 X bogstaver, som skal sorteres. Så sortere du dem med en eller anden sorterings-algoritme.
Til sidst så sammenligner du til at starte med index 0 og 1, derefter 1 og 2 osv...
Jeg håber, at det har hjulpet og at jeg har forstået det rigtigt.
// Hvis det er dna og de sekvenser der skal findes maximalt // er 5 grupper lange // har vi 4 i 5\'te = 1024 mulige kombinationer // at lede efter i en gevaldig lang streng. // // Det er ikke vældig mange så mon ikke det er nemmere at sige:
public class Monsterfinder {
static String alfabet = \"acgt\";
static String tilStr( int nr ) { String res = \"\"; for (int i=0; i<5; i++ ) { res = alfabet.charAt( nr % 4 ) +res; nr /= 4; } return res; }; //end tilstr
static int fraStr( String str ) { // værd at optimere int res = 0; for (int i=0; i<5; i++ ) { res = 4*res + alfabet.indexOf( str.charAt(i) ); } return res; }; //end fraStr
public static void main(String[] args) {
String dna; int[] tael = new int[1024]; // opret udfaldsrum
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.