Autor
|
Tema: Sacar valores par y valores impar (Leído 4,563 veces)
|
nolasco281
Desconectado
Mensajes: 319
|
Hola Lo que trato de hacer es la mediana es algo de estadistica: Dice si tengo 54321 ordenarlos ya lo hice 12345 Como la cantidad de valores es impar debe sacar el valor 3 en este caso ya que es el de enmedio. pero si la cantidad de varores es par 654321 -> oredenarlos 123456 toma los dos valores intermedios en este caso 3 y 4 estos se suman 3+4/2 = 3.5 esa seria la mediana en este caso. ahora tengo lo siquiente If (listaElementos / 2) = (listaElementos / 2) { cout << ("Par"); mediana = (listaElementos - 0.5) + (listaElementos + 0.5) / 2; cout << mediana; } Else { cout << ("Impar"); mediana = listaElementos / 2; cout << mediana; }
Gracias
|
|
|
En línea
|
Lo que se puede imaginar... se puede programar.
|
|
|
engel lex
|
es una duda o qué? ste caso 3 y 4 estos se suman 3+4/2 = 3.5 esa seria la mediana en este caso por orden de ejecución de operados eso es 5 http://es.wikipedia.org/wiki/Orden_de_evaluaci%C3%B3n If (listaElementos / 2) = (listaElementos / 2) eso debería darte error de compilación, sin contar que es incorrecto (listaElementos - 0.5) + (listaElementos + 0.5) / 2; incorrecto para tus fines, esto es equivalente a (x-0.5) * ( (x+0.5)/2 )
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
nolasco281
Desconectado
Mensajes: 319
|
Si lo siento, si es una duda lamento si no me supe explicar pero eso es lo que queria saber si esta bien, o no como lo deberia de hacer con un for o con un if esa es la duda que tengo.
Gracias por responder.
|
|
|
En línea
|
Lo que se puede imaginar... se puede programar.
|
|
|
leosansan
Desconectado
Mensajes: 1.314
|
Espero que te aclare lo siguiente: n = numero de elementos o valores almacenados. if ( n%2 == 0 ) <== n par i = posicion: 0 1 2 3 4 5 valor: 1 2 3 4 5 6 posicion media = ( n-1 )/2 = (2.5) = 2 por ser la division entera. valor medio = valor( n-1 )/2 + valor(1+( n-1 )/2) = valor(2) + valor(3) = 3 + 4 else <== n impar i = posicion: 0 1 2 3 4 valor: 1 2 3 4 5 posicion media = ( n-1 )/2 = 2 . valor del medio = valor( n-1 )/2 = valor(2)= 3
¡¡¡¡ Saluditos! ..... !!!! EDITADO: Gracias por la observación engel lex
|
|
« Última modificación: 2 Mayo 2014, 18:40 pm por leosansan »
|
En línea
|
|
|
|
engel lex
|
leosansan creoque pusiste el simbolo incorrecto
i%2 siempre va a ser < 2 :p corrijele su simbolo de division :p
y si nolasco correjido, el metodo de leolsansan es el correcto, recomiendo hacer la operacion un int para evitar errores
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
nolasco281
Desconectado
Mensajes: 319
|
Gracias acaba de llegar a la casa y lo acaba de probar
Funciono perfecto mil gracias por responder.
Saludos y muchas gracias de nuevo.
|
|
|
En línea
|
Lo que se puede imaginar... se puede programar.
|
|
|
Blaster
Desconectado
Mensajes: 190
|
Te dejo tambien mi seudocódigo o es lo que parece xD.. for (si i = 0 es menor que dos, incremeta) if (n % 2 == 0) es par media += a la suma de los dos intermedio = valor[(n-i)/2] else es impar media = numero de elementos dividido por dos = n /2 if (n % 2 == 0) si es par, sacar media apartir de la suma de los intermedios media = suma de los intermedio dividido dos = media /2
Saludos .:
|
|
« Última modificación: 3 Mayo 2014, 02:12 am por Blaster »
|
En línea
|
|
|
|
eferion
Desconectado
Mensajes: 1.248
|
Y que tal con iteradores?? std::vector< int > lista; lista.push_back( 1 ); lista.push_back( 2 ); lista.push_back( 3 ); lista.push_back( 4 ); lista.push_back( 5 ); lista.push_back( 6 ); auto it = lista.begin( ) + std::distance( lista.begin( ), lista.end( ) ) / 2; if ( lista.size( ) % 2 == 0 ) std::cout << *(it - 1) << " "; std::cout << *it;
Presupongo el vector ya ordenado porque esa parte dices que ya la tienes... aunque con un set o un multiset ( dependiendo de si admites valores duplicados o no ) te ahorrarías el tener que ordenar la lista: std::set< int > lista; lista.push_back( 5 ); lista.push_back( 1 ); lista.push_back( 4 ); lista.push_back( 3 ); lista.push_back( 6 ); lista.push_back( 2 ); // Aqui se imprimen ya ordenados for ( auto it = lista.begin( ); it != lista.end( ); ++it ) std::cout << *it << std::endl; // Y si el orden que quieres es de mayor a menor... for ( auto it = lista.rbegin( ); it != lista.rend( ); ++it ) std::cout << *it << std::endl;
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Valores del registro
Programación Visual Basic
|
Kizar
|
1
|
3,216
|
27 Octubre 2005, 20:28 pm
por Kizar
|
|
|
valores sin signo
Programación Visual Basic
|
leliCabello
|
3
|
2,518
|
9 Noviembre 2010, 16:34 pm
por leliCabello
|
|
|
valores y grafica
Programación Visual Basic
|
pirot
|
5
|
2,559
|
4 Febrero 2011, 08:40 am
por BlackZeroX
|
|
|
Sacar valores de tabla con jquery
Desarrollo Web
|
andreslrz
|
1
|
19,044
|
3 Junio 2015, 19:06 pm
por #!drvy
|
|
|
Ayuda para sacar unos valores de un fichero
Java
|
Fryuio
|
4
|
2,719
|
22 Abril 2017, 12:40 pm
por Fryuio
|
|