Mensajes recientes

Páginas: [1] 2 3 4 ... 10
1
Computación e Informática / Re: Problemas con una pila en C
« Último mensaje por URama en Hoy a las 03:48 pm »
La cadena se recorre con while leyendo un caracter a la vez hasta hallar el final de la cadena.
Se analiza cada caracter como lo venías haciendo con ctype.
Los espacios en blanco se descartan.
La distincion entre digito, operación, etc., es algo definido por el programador. Yo ni usaría ctype en realidad.
Igual no sé si entiendo tu pregunta.
Hola! Muchas gracias! Si perdon la pregunta no esta muy bien formulada.

Ahora me surge otra duda, quiero hacer una pila LIFO de manera que guarde arrays de dos dimensiones. Es decir, que para codificar un numero, por ejemplo 2 será {0,2} entre dentro de pila, igualmente para una + seria {1,0} y - seria {1,1}... Entonces la pila deberia quedarse:
{1,1}
{1,0}
{0,2}. Pero no tengo ni idea de como se puede apilar vectores, alguna sugerencia? Sólo sé apilar números independients. Aquí mi código:
Código: [Seleccionar]
typedef struct Pila
{
    char *data;
    struct Pila *seguent;
}Element[2];

typedef struct PilaUbicacio
{
    Element *inici;
    int tamany;
} Pila;

void inicialitzacio (Pila *tas);

int apilar(Pila *tas, char *data);
int desapilar(Pila *tas);
void visualitzar(Pila *tas); //Mostra tota la pila;
/* FI PILA */

/* VECTORS PER APILAR */
void nombres(char p);
void operacions(char p);
/* FI VECTORS PER APILAR */

int main([
{
   double vector[2]={0,1};
   apilar(vector);
}
void inicialitzacio (Pila *tas)
{
    tas->inici=NULL;
    tas->tamany=0;
}

int apilar(Pila *tas, char *data)
{
    Element *nou_element;if((nou_element =(Element *) malloc (sizeof (char)))==NULL) return -1;
    strcpy (nou_element->data, data);
    nou_element->seguent=tas->inici;
    tas->inici=nou_element;
    tas->tamany++;
}

int desapilar(Pila *tas)
{
    Element *sup_element;
    if (tas->tamany==0) return -1;
    sup_element=tas->inici;
    tas->inici=tas->inici->seguent;
    free (sup_element->data);
    free (sup_element);
    tas->tamany--;
    return 0;
}

void visualitzar(Pila *tas)
{
    Element *actual;
    actual=tas->inici;

    for (int i=0; i<tas->tamany; i++){
        printf("\t\t%s\n", actual->data);
        actual=actual->seguent;
    }
}
Lo he intentado de mil maneras para guardar un array pero no me sale. Sé que no debe ser char el struct pero ya no entiendo nada. Muchas gracias si alguien pudiera ayudarme!
2
Sí, pero viene implícito en la definición de producto escalar como una función \( \mathbb{F}\times V\to V \), y lo mismo para una operación binaria en \( V \) que no deja de ser una función del tipo \( V\times V\to V \). Pero tienes razón en que se me olvidó remarcar eso.

Perfecto, eso es lo que no estaba logrando ver.

Saludos y gracias,
Franco.
3
Queda bastante claro escrito de esa manera, y me gusto bastante como usas para diferenciar entre suma en F y en V.
¿Pero ahí no faltarían el tema de que sea cerrado frente a la suma y producto por escalar? ¿O tal vez viene implícito en algo y no me doy cuenta?

Saludos,
Franco.

Sí, pero viene implícito en la definición de producto escalar como una función \( \mathbb{F}\times V\to V \), y lo mismo para una operación binaria en \( V \) que no deja de ser una función del tipo \( V\times V\to V \). Pero tienes razón en que se me olvidó remarcar eso.
4
Buenas Masacroso ,

Por aportar algo: se pueden agrupar los axiomas que definen un espacio vectorial \( V \) sobre un cuerpo \( \mathbb{F} \) en tres subgrupos que hace más fácil recordarlos:

1. \( V \) debe ser un grupo abeliano, es decir, tener una operación binaria \( \oplus  \) asociativa, conmutativa, con elemento neutro y que cada vector tenga un inverso.

2. El producto escalar \( \cdot  \) de \( \mathbb{F} \) sobre \( V \) tiene que cumplir los axiomas distributivos

\( \displaystyle{
(\alpha +\beta )\cdot \boldsymbol v=\alpha \cdot \boldsymbol v\oplus \beta \cdot \boldsymbol v,\quad \alpha \cdot (\boldsymbol v\oplus \boldsymbol w)=\alpha \cdot \boldsymbol v\oplus \alpha \cdot \boldsymbol w,\qquad \text{ para todo }\alpha ,\beta \in \mathbb{F}\text{ y }\boldsymbol v,\boldsymbol w\in V
} \)

3. el producto escalar \( \cdot  \) de \( \mathbb{F} \) sobre \( V \) tiene que cumplir los axiomas

\( \displaystyle{
\alpha \cdot (\beta \cdot \boldsymbol v)=(\alpha \beta )\cdot \boldsymbol v,\quad 1\cdot \boldsymbol v=\boldsymbol v,\qquad \text{ para todo }\alpha \in \mathbb{F}\text{ y }\boldsymbol v\in V
} \)

En lo anterior \( + \) es la suma en \( \mathbb{F} \) y la yuxtaposición de elementos como en \( \alpha \beta  \) representa el producto en \( \mathbb{F} \). En total son ocho axiomas así planteado, y se pueden agrupar los dos axiomas del grupo dos en uno solo, pero es más claro tenerlo en dos axiomas separados.

Queda bastante claro escrito de esa manera, y me gusto bastante como usas para diferenciar entre suma en F y en V.
¿Pero ahí no faltarían el tema de que sea cerrado frente a la suma y producto por escalar? ¿O tal vez viene implícito en algo y no me doy cuenta?

Saludos,
Franco.
5
Buenas,

Hola

1) Por definición de función suma y función producto por escalar:
\( (\lambda(f+g))(x)=\lambda((f+g)(x))\lambda(f(x)+g(x)) \)

¿Aquí no falta un igual? para que quede \( (\lambda(f+g))(x)=\lambda((f+g)(x))=\lambda(f(x)+g(x)) \)

Si, gracias. Ya lo he corregido.

Citar
Para rematar el ejercicio completo con los últimos 3 axiomas:
8vo axioma (distributiva respecto a suma de escalares):
\( (\lambda + \mu)f(x) \)
Por ser V espacio vectorial
\( \lambda f(x) + \mu f(x) = (\lambda f)(x) + (\mu f)(x) \)

Bien. Aunque quizá te falta escribirlo así para ser más claro:

\( (\lambda + \mu)f(x)=\lambda f(x) + \mu f(x) = (\lambda f)(x) + (\mu f)(x) \)

Es en la primera igualdad donde usas que \( V \) es espacio vectorial.

Citar
9no axioma (asociatividad mixta):
\( \lambda (\mu f(x)) \)
Por ser V espacio vectorial:
\( (\lambda \mu) f(x) \)

Aquí igual... escribe explícitamente la igualdad para mayor claridad.

Citar
10mo axioma(identidad):
\( (1f)(x) = 1f(x) \)
Por ser V espacio vectorial
\( 1f(x)=f(x) \)

Bien.

Citar
Para otros ejercicios del estilo, siempre deben ser los 10 axiomas ¿o hay una cantidad reducida que ya baste?

En principio no se pueden reducir. Lo que pasa es que en estas cosas siempre es difícil generalidar. Por ejemplo, puede ser que estemos trabajando en una estructura donde ya sepamos de antemano que la suma definida cumple las propiedades del grupo y sólo haya que preocuparse de la operación producto por escalar.

Pero aunque suene obvio (¡de Perogrullo!), digamos que si puedes relajar alguna comprobación será porque existe un motivo para poder hacerlo.  ;D ;D

Saludos.

Perfecto, voy a escribirlo mas explícitamente como sugerís.
De todos modos creo que estos ejercicios son menos frecuentes que los de demostrar que un subconjunto es subespacio vectorial  ;D.

Saludos,
Franco.
6
Hola.

Ahora bien, a mí todas estas cosas me encantan, y lo que dices suena interesante, lo que pasa es que no estoy seguro de haber entendido cómo defines la constante de la que hablas. ¿Podrías poner algún ejemplo concreto?


Hola de nuevo.

Lo primero quiero pedir disculpas por tardar tanto pero llevo un tiempo algo liado. La constante de la que hablaba aparece cuando nos fijamos en las casillas atacadas por las diagonales de las damas. Atendiendo a todas las casillas del tablero, cada casilla puede adoptar tres estados (asumiendo que la casilla en la que está la dama está atacada una vez). El primero de ellos es que no esté atacada, el segundo que esté atacada tan solo una vez y el tercero que esté atacada 2 veces. Que no haya más corresponde al hecho de que una casilla atacada 3 veces implicaría que 2 damas estén en la misma diagonal.

Si contabilizamos el número de casillas atacadas dos veces y le restamos en número de casillas que no son atacadas ahí es donde aparece esa constante. Para 8 reinas, y, en los casos que había comprobado, creo que recordar que siempre me daba 12.

Ahora me pondré a trastear un poco con tu código a ver si realmente se mantiene constante ese número o no.

¡Un saludo!

7
Topología Algebraica / Re: Superficies homeomorfas
« Último mensaje por geómetracat en Hoy a las 01:59 pm »
Ahora sí tiene sentido. Cuando lo tengas hecho pon la solución a la que has llegado y comparamos.
8
Topología Algebraica / Re: Superficies homeomorfas
« Último mensaje por smc en Hoy a las 01:06 pm »
Ahora me doy cuenta de que estaba mal. Lo he cambiado y voy a intentar resolverlo gracias por las pistas!
9
Topología Algebraica / Re: Superficies homeomorfas
« Último mensaje por geómetracat en Hoy a las 01:03 pm »
¿Seguro que está bien la palabra? Hay un \[ c \] suelto (no identificado con nada) y aparece \[ e \] tres veces, con lo que el resultado no sería una variedad. Repasa el enunciado.

En cualquier caso, estos ejercicios son muy mecánicos: debes calcular la característica de Euler (contando vértices distintos -no identificados-, aristas distintas y una cara) y ver si es orientable o no (esto es muy fácil: es no orientable si y solo si hay alguna arista pegada con la misma orientación). Con esto tienes toda la información necesaria para caracterizar la superfície. También conviene saber que \[ T \# P\cong 3P \].
10
Topología Algebraica / Re: Sobre grupos fundamentales.
« Último mensaje por geómetracat en Hoy a las 12:50 pm »
Es la a), es un resultado típico que seguro has visto en teoría: si \[ \gamma \] es un camino de \[ x_0 \] a \[ x_1 \] entonces hay un isomorfismo \[ \pi_1(X,x_0) \to \pi_1(X,x_1) \] dado por \[ [f]\mapsto [\gamma^{-1}*f*\gamma] \].
Páginas: [1] 2 3 4 ... 10