Forum » Znanost in tehnologija » Izdelava algoritma
Izdelava algoritma
Klemen86 ::
Pozdravljeni!
Imam naslednjo težavo, in sicer bi rad izdelal algoritem, ki mi bo rešil naslednji problem:
X1 Y1 1 ... 1/2
X2 Y2 1 ... 2/2
X3 Y3 0 ... 0
X4 Y4 0 ... 0
X5 Y5 1 ... 1/3
X6 Y6 1 ... 2/3
X7 Y7 1 ... 3/3
Torej imam podatke o X in Y spremenljivkah in primerjam vrednosti obeh spremenljivk: X1 > Y1, zato je v tretjem stolpcu 1, medtem ko je X3 < Y3, zato je v tretjem stolpcu vrednost 0. Torej 1 označuje, da je X večji o Y in 0 ravno obratno.
Stanje, ki ga hočem dobiti v n stolpcu (odvisno od vmesnih korakov je naslednje) = seštevek vseh predhodnih 1 v nizu / maksimalno število 1 v nizu.
Hvala za kakršno koli pomoč.
Imam naslednjo težavo, in sicer bi rad izdelal algoritem, ki mi bo rešil naslednji problem:
X1 Y1 1 ... 1/2
X2 Y2 1 ... 2/2
X3 Y3 0 ... 0
X4 Y4 0 ... 0
X5 Y5 1 ... 1/3
X6 Y6 1 ... 2/3
X7 Y7 1 ... 3/3
Torej imam podatke o X in Y spremenljivkah in primerjam vrednosti obeh spremenljivk: X1 > Y1, zato je v tretjem stolpcu 1, medtem ko je X3 < Y3, zato je v tretjem stolpcu vrednost 0. Torej 1 označuje, da je X večji o Y in 0 ravno obratno.
Stanje, ki ga hočem dobiti v n stolpcu (odvisno od vmesnih korakov je naslednje) = seštevek vseh predhodnih 1 v nizu / maksimalno število 1 v nizu.
Hvala za kakršno koli pomoč.
Yacked2 ::
Kakšno je število vhodnih vrstic, da vem če je treba paziti na optimizacijo ali lahko nekaj na hitro spacam skupaj.
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!
Yacked2 ::
import java.util.Scanner; public class primer1 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); //preberemo stevilo vhodnih parov int n = sc.nextInt(); //tabela kamor shranjujemo vhodno podatke int[][] result = new int[n][5]; //stejemo koliko zaporednih parov kjer je x vecji od y smo imeli zaporedoma int stevecVecjih = 0; //sprehodimo se po vhodnih podatkih for(int line = 0; line < n; line++) { //zacasna tabela kamor shranjujemo trenuten vhod int[] dump = new int[5]; //preberemo nasledni par int x = sc.nextInt(); int y = sc.nextInt(); //shranimo v tabelo dump[0] = x; dump[1] = y; if(x > y) { //povecamo stevilo vecjih stevecVecjih++; dump[2] = 1; dump[3] = stevecVecjih; dump[4] = -1; } else { //prekinemo serijo vecjih dump[2] = 0; dump[3] = 0; dump[4] = 0; stevecVecjih = 0; } //shranimo v glavno tabelo result[line] = dump; } sc.close(); //sprehodimo se cez celotno tabelo int i = 0; while (i < result.length) { //ce je x manjsi gremo takoj naprej if(result[i][2] == 0) { i++; } else { //x je vecji, poracunamo se zadnjo vrstico int stevec = 0; for(int j = i; j < result.length; j++) { //iscemo koliko zaporednih vhodov imamo kjer je x vecji od y if(result[j][2] == 1) { stevec++; } else { break; } } //vsem od i-tega do i+stevec-tega nastavimo zadnjo vrsto for(int j = i; j < i+stevec; j++) { result[j][4] = stevec; } //preskocimo ze poracunane i += stevec; } } //izpisemo output for(int a = 0; a < result.length; a++) { if(result[a][2] == 0) { System.out.println("0"); } else { System.out.println(result[a][3] + "/" + result[a][4]); } } } }
Korak naprej ni vedno ustrezen...sploh če si na robu prepada!
stapler rump ::
Klemen86. nisi povedal, kaj se zgodi, ko sta X in Y enaka. Spodnje sicer izpiše tako tabelo, kot je v tvojem primeru iz podatkov v x in y seznamih:
x = [1, 1, 0, 0, 1, 1, 1] y = [0, 0, 1, 1, 0, 0, 0] from itertools import starmap, groupby i = 1 for j, k in groupby(starmap(lambda i, j: i > j, zip(x, y))): k = list(k) for m, l in enumerate(k): if j: print("X%d Y%d 1 ... %d/%d" % (i, i, m+1, len(k))) else: print("X%d Y%d 0 ... 0" % (i, i)) i += 1
Vredno ogleda ...
Tema | Ogledi | Zadnje sporočilo | |
---|---|---|---|
Tema | Ogledi | Zadnje sporočilo | |
» | Naloga iz Putka - UPMOddelek: Programiranje | 2222 (1558) | NejcSSD |
» | java pomočOddelek: Programiranje | 1979 (1371) | kr?en |
» | BMI kalkulatorOddelek: Programiranje | 1134 (960) | jype |
» | Java - dva problemaOddelek: Programiranje | 1731 (1339) | nightrage |
» | [Java] Kako filtrirati, katera števila lahko vpišeš?Oddelek: Programiranje | 2085 (1787) | fiction |