webForumDet fria alternativet

Data, arayer, tänker jag fel?

9 svar · 322 visningar · startad av P

PMedlem sedan jan. 20012 204 inlägg
#1

Har två arrayer som ser ut så här

1

{A,x1,x2,x3,x4,A,x5,x6,x7,x8,x9...}
x1,x2...xn godtyckliga tal.
När arrayen slutar så lägger jag till till ett element "A", så att jag får början och slut med "A"

och

{1,5}
arrayen talar om vilka element i första arrayen som är "A".

Jag vill beräkna medelavståndet mellan de olika A:na. Hade helt enkelt tänkt mig:

(array1.element.size-1)/(array2.element.size+1)

men får helt orimliga resultat....

nitro2k01Medlem sedan aug. 20039 342 inlägg
#2

Medelavstånd? Mellan vad?
Och hur menar du, ska sista och första elementen i array1 båda vara=A?

PMedlem sedan jan. 20012 204 inlägg
#3

nitro2k01 skrev:

Medelavstånd? Mellan vad?
Medelavstånd mellan de olika "A":na, alltså medelavstånd i element räknat.

nitro2k01 skrev:

Och hur menar du, ska sista och första elementen i array1 båda vara=A?

Sista elementet är inte A från början, utan jag lägger till det i arrayen för att få "jämt" antal, eller hur man nu ska säga...

PeWMedlem sedan juni 200010 432 inlägg
#4

Borde väl vara antal_ej_A/(antal_A-1)
Så som pseudo:

array = "AxxAxA"
nof_A=0
nof_E=0

loop array to end
   if element == 'A' then 
     nof_A = nof_A + 1
   else
     nof_E = nof_E + 1

end loop

  average = nof_E/(nof_A-1)

Ger ett average om 1.5

edit:
Bättre exempel

PMedlem sedan jan. 20012 204 inlägg
#5

ok, formulerade mig lite otydligt kanske;
arrayen: "A12A123" borde ju ge ett medel på 2,5. "A12A123A" borde väl ge ett medel på 1.66....

PeWMedlem sedan juni 200010 432 inlägg
#6

P skrev:

ok, formulerade mig lite otydligt kanske;
arrayen: "A12A123" borde ju ge ett medel på 2,5. "A12A123A" borde väl ge ett medel på 1.66....

Jag ändrade mitt exempel innan du postade ;)

Ifall man gör som du menar att alltid mata in ett A, sist. Så ger "A12A123A" ett medel på 2.5 i den editerade lösningen ovan.

PMedlem sedan jan. 20012 204 inlägg
#7

array = "AxxAxA"
Borde väl ge medel på 1 och

array = "AxxAx"
Medel, 1,5

* red , ok läste fel.

PeWMedlem sedan juni 200010 432 inlägg
#8

P skrev:

array = "AxxAxA"
Borde väl ge medel på 1 och

array = "AxxAx"
Medel, 1,5

* red , ok läste fel.

Fast förutsättningen du gav är ju att arrayen startar och slutar med A.

PeWMedlem sedan juni 200010 432 inlägg
#9

AxxAxA borde med den givna förutsättningen om att arrayen avslutas med ett A, ge ett medel om 1.5

AxxAx bör inte ens inträffa om man tänker på den förutsättningen. Men om det ändå gör det bör medel då bli 2 och inte 1.5, fast då får man lägga in lite mer villkor i min givna algoritm eftersom den förutsätter att arrayen avslutas med ett A såsom angavs i första inlägget i tråden.

PeWMedlem sedan juni 200010 432 inlägg
#10

Ifall att "AxxAxx" ska vara godtagbart är det bara att peta in en "rollback" efter den första traverseringen:

if last element != 'A' then
  while array[--index] != 'A' do
         nof_E = nof_E - 1

Så kommer bara de mellanrummen (mellan A:na)som finns räknas med.

131 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
128 ms — hämta tråd, inlägg och bilagor (db)