Тема: Сідлова точка

Цікавить алгоритм знаходження максимумів і мінімумів в масиві, використовуючи метод  "сідлової точки"

2 Востаннє редагувалося koala (31.01.2014 17:05:30)

Re: Сідлова точка

Злісний сарказм.
Я би вам радив шукати максимуми і мінімуми, використовуючи метод "пошуку максимумів і мінімумів".

Вибачте, не втримався. Не існує ніякого "методу сідлової точки" - навпаки, сідлову точку шукають за максимумами і мінімумами. З чого можна зробити висновок, що вам треба зробити не те, що ви просите, а щось інше. Що саме?

3

Re: Сідлова точка

Мені просто цікавий алгоритм сідловою точки

4

Re: Сідлова точка

Будь-ласка

x

5

Re: Сідлова точка

Chemist-i написав:

Будь-ласка

Там немає жодного "алгоритму знаходження максимумів і мінімумів в масиві, використовуючи метод  "сідлової точки".

6

Re: Сідлова точка

koala написав:
Chemist-i написав:

Будь-ласка

Там немає жодного "алгоритму знаходження максимумів і мінімумів в масиві, використовуючи метод  "сідлової точки".

так?

 
#include <stdio.h>
 
 
/********************************************************************/
#define MAX_WIDTH   5
#define MAX_HEIGHT  8
 
 
/********************************************************************/
int m[MAX_WIDTH][MAX_HEIGHT]= {
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
};
 
 
/********************************************************************/
int main( void ) {
 
int i, j, val;
int min_h[MAX_WIDTH], max_w[MAX_HEIGHT];
 
 
for ( i= 0; i<MAX_WIDTH; i++ ) {
    val= m[i][0];
    for ( j= 1; j<MAX_HEIGHT; j++ ) {
        if ( m[i][j]<val ) { val= m[i][j]; }
    }
    min_h[i]= val;
}
 
for ( j= 0; j<MAX_HEIGHT; j++ ) {
    val= m[0][j];
    for ( i= 1; i<MAX_WIDTH; i++ ) {
        if ( m[i][j]>val ) { val= m[i][j]; }
    }
    max_w[j]= val;
}
 
for ( i= 0; i<MAX_WIDTH; i++ ) {
    for ( j= 0; j<MAX_HEIGHT; j++ ) {
        if ( m[i][j] == max_w[j] && m[i][j] == min_h[i] ) {
            printf( "m[%d][%d]=%d\n", i, j, m[i][j] );
        }
    }
}
 
return 0;
 
}

x

7

Re: Сідлова точка

Chemist-i написав:
koala написав:
Chemist-i написав:

Будь-ласка

Там немає жодного "алгоритму знаходження максимумів і мінімумів в масиві, використовуючи метод  "сідлової точки".

так?

 
#include <stdio.h>
 
 
/********************************************************************/
#define MAX_WIDTH   5
#define MAX_HEIGHT  8
 
 
/********************************************************************/
int m[MAX_WIDTH][MAX_HEIGHT]= {
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
};
 
 
/********************************************************************/
int main( void ) {
 
int i, j, val;
int min_h[MAX_WIDTH], max_w[MAX_HEIGHT];
 
 
for ( i= 0; i<MAX_WIDTH; i++ ) {
    val= m[i][0];
    for ( j= 1; j<MAX_HEIGHT; j++ ) {
        if ( m[i][j]<val ) { val= m[i][j]; }
    }
    min_h[i]= val;
}
 
for ( j= 0; j<MAX_HEIGHT; j++ ) {
    val= m[0][j];
    for ( i= 1; i<MAX_WIDTH; i++ ) {
        if ( m[i][j]>val ) { val= m[i][j]; }
    }
    max_w[j]= val;
}
 
for ( i= 0; i<MAX_WIDTH; i++ ) {
    for ( j= 0; j<MAX_HEIGHT; j++ ) {
        if ( m[i][j] == max_w[j] && m[i][j] == min_h[i] ) {
            printf( "m[%d][%d]=%d\n", i, j, m[i][j] );
        }
    }
}
 
return 0;
 
}

Ні, це пошук сідлової точки. Ви читати не вмієте? Автор просить знайти мінімум і максимум за "методом сідлової точки", а не сідлову точку за допомогою мінімумів і максимумів.

8

Re: Сідлова точка

koala написав:
Chemist-i написав:
koala написав:

Там немає жодного "алгоритму знаходження максимумів і мінімумів в масиві, використовуючи метод  "сідлової точки".

так?

 
#include <stdio.h>
 
 
/********************************************************************/
#define MAX_WIDTH   5
#define MAX_HEIGHT  8
 
 
/********************************************************************/
int m[MAX_WIDTH][MAX_HEIGHT]= {
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
    { 0, 0, 0, 0, 0, 0, 0, 0 },
};
 
 
/********************************************************************/
int main( void ) {
 
int i, j, val;
int min_h[MAX_WIDTH], max_w[MAX_HEIGHT];
 
 
for ( i= 0; i<MAX_WIDTH; i++ ) {
    val= m[i][0];
    for ( j= 1; j<MAX_HEIGHT; j++ ) {
        if ( m[i][j]<val ) { val= m[i][j]; }
    }
    min_h[i]= val;
}
 
for ( j= 0; j<MAX_HEIGHT; j++ ) {
    val= m[0][j];
    for ( i= 1; i<MAX_WIDTH; i++ ) {
        if ( m[i][j]>val ) { val= m[i][j]; }
    }
    max_w[j]= val;
}
 
for ( i= 0; i<MAX_WIDTH; i++ ) {
    for ( j= 0; j<MAX_HEIGHT; j++ ) {
        if ( m[i][j] == max_w[j] && m[i][j] == min_h[i] ) {
            printf( "m[%d][%d]=%d\n", i, j, m[i][j] );
        }
    }
}
 
return 0;
 
}

Ні, це пошук сідлової точки. Ви читати не вмієте? Автор просить знайти мінімум і максимум за "методом сідлової точки", а не сідлову точку за допомогою мінімумів і максимумів.

Прихований текст
Тролль?
x

9

Re: Сідлова точка

Chemist-i написав:
Прихований текст
Тролль?
Прихований текст
Автор? Навряд чи, радше просто не розібрався в питанні.
Я? Ні, я хочу допомогти авторові розібратися.
Ви? Вам видніше.

10

Re: Сідлова точка

Моє питання полягало в знаходженні елемента масиву методом сідлової точки.
В універі нам сказали, що це алгоритм знаходження елемента масиву, який одночасно є найбільшим в рядку та найменшим в стопці. Якось так