Регистрирайте сеРегистрирайте се

malko da posmqtate :D


 
   Форум за математика Форуми -> Теория на числата, Признаци за деление
Предишната тема :: Следващата тема  
Автор Съобщение
evldvlkll
Начинаещ


Регистриран на: 03 Apr 2007
Мнения: 77
Местожителство: Бургас
Репутация: 8Репутация: 8Репутация: 8Репутация: 8Репутация: 8Репутация: 8Репутация: 8

МнениеПуснато на: Tue Jun 19, 2007 12:07 pm    Заглавие: malko da posmqtate :D

Dadeni sa 4islata 1,2,3.......,27. Trqbva da se razpredelqt v tri grupi taka po 9 4isla, taka 4e sborat na 4islata vav vsqka grupa da e raven i ako podrejdaneo e slednoto:
a1 + a2 +.... + a9 = 126
b1 + b2 +.... + b9 = 126
c1 + c2 + .... + c9 = 126, to trqbva i

a1 + b1 + c1 = a2 + b2 + c2 =......=a9 + b9 + c9 = 42
Da se nameri takova podrejdane Smile
Molq pomognete! 10x mn predvaritelno Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Реклама







Пуснато на:     Заглавие: Реклама

Върнете се в началото
name01
Фен на форума


Регистриран на: 11 May 2007
Мнения: 500

Репутация: 40.3Репутация: 40.3Репутация: 40.3Репутация: 40.3
гласове: 5

МнениеПуснато на: Wed Jun 20, 2007 3:15 pm    Заглавие:

Не успях да я реша чрез математически методи, затова пробвах с алгоритми C++ в крайна сметка един пич взе задачатa присърце и написа следното:

Цитат:
#include <iostream>

using namespace std;

#include <stdio.h>
#include <conio.h>

bool is_good(int v[], const int size){
bool fine = true;

if(v[0]+v[9]+v[18] != 42){
fine = false;
}else if(v[1]+v[10]+v[19] != 42){
fine = false;
}else if(v[2]+v[11]+v[20] != 42){
fine = false;
}else if(v[3]+v[12]+v[21] != 42){
fine = false;
}else if(v[4]+v[13]+v[22] != 42){
fine = false;
}else if(v[5]+v[14]+v[23] != 42){
fine = false;
}else if(v[6]+v[15]+v[24] != 42){
fine = false;
}else if(v[7]+v[16]+v[25] != 42){
fine = false;
}else if(v[8]+v[17]+v[26] != 42){
fine = false;
}else if(v[0]+v[1]+v[2]+v[3]+v[4]+v[5]+v[6]+v[7]+v[8] != 126){
fine = false;
}else if(v[9]+v[10]+v[11]+v[12]+v[13]+v[14]+v[15]+v[16]+v[17] != 126){
fine = false;
}else if(v[18]+v[19]+v[20]+v[21]+v[22]+v[23]+v[24]+v[25]+v[26] != 126){
fine = false;
}else{
fine = true;
}
return( fine );
}

/* function to swap array elements */
void swap(int v[], const int i, const int j) {
int t;

t = v[i];
v[i] = v[j];
v[j] = t;
}

/* recursive function to generate permutations */
void perm(int v[], int n, int i) {
static const double total = 10888869450418352160768000000.0;
static double progress = 0;

/* this function generates the permutations of the array
* from element i to element n-1
*/
int j;

/* if we are at the end of the array, we have one permutation
* we can use (here we print it; you could as easily hand the
* array off to some other function that uses it for something
*/
if(i == n) {
progress++;

if( is_good(v,n) ){
for (j=0; j<n; j++)
printf("%d ", v[j]);
printf("\n");
}

//if( !((unsigned long)progress%10000000) )
//printf("%3d%%\n", (int)(progress*100.0/total));
}else{
/* recursively explore the permutations starting
* at index i going through index n-1
*/
for(j=i; j<n; j++) {
/* try the array with i and j switched */
swap(v, i, j);
perm(v, n, i+1);

/* swap them back the way they were */
swap(v, i, j);
}
}
}

/* little driver function to print perms of first 5 integers */
int main () {
int v[27], i;

for(i=0; i<27; i++)
v[i] = i+1;

perm(v, 27, 0);

system( "PAUSE" );
return( 0 );
}




Доста тежък за изпълнение алгоритъм, чак после разбрах за т.нар магически кубове, все пак ми е интересно каква е чисто математическата логика на тази задача, защото освен сравнения изключвания грешки, проби, пермутации и т.н. друго не се сещам.

Както и да е отговора поне е красив:

[/img]
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
name01
Фен на форума


Регистриран на: 11 May 2007
Мнения: 500

Репутация: 40.3Репутация: 40.3Репутация: 40.3Репутация: 40.3
гласове: 5

МнениеПуснато на: Wed Jun 20, 2007 3:19 pm    Заглавие:

Пък и не е единствен. Laughing Laughing Laughing
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
evldvlkll
Начинаещ


Регистриран на: 03 Apr 2007
Мнения: 77
Местожителство: Бургас
Репутация: 8Репутация: 8Репутация: 8Репутация: 8Репутация: 8Репутация: 8Репутация: 8

МнениеПуснато на: Wed Jun 20, 2007 8:01 pm    Заглавие:

Mersiiiiiiiiiiiii Smile Otarva mi kojata 4ovek (dance) Blagodarq ti mnogo i e mnogo krasivo, stava strahotno mn sam ti blagodarna Smile
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
name01
Фен на форума


Регистриран на: 11 May 2007
Мнения: 500

Репутация: 40.3Репутация: 40.3Репутация: 40.3Репутация: 40.3
гласове: 5

МнениеПуснато на: Wed Jun 20, 2007 10:54 pm    Заглавие:

Незнам за какво ти е тази, задача, но ако някой ти я е дал на изпит контролно или нещо от сорта си е правил някакъв експеримент. Потърси из нета за magic cube.

Magic cube
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
evldvlkll
Начинаещ


Регистриран на: 03 Apr 2007
Мнения: 77
Местожителство: Бургас
Репутация: 8Репутация: 8Репутация: 8Репутация: 8Репутация: 8Репутация: 8Репутация: 8

МнениеПуснато на: Thu Jun 21, 2007 11:38 am    Заглавие:

Potarsih, namerih podrobna informaciq, si4ko e ok, napisano mi e doma6noto. Mi ne to tova e samo primera, koito trqbva da dam na edna druga, dosta po seriozna zada4a, dadena mi za doma6na. Mersi mn Wink
Върнете се в началото
Вижте профила на потребителя Изпратете лично съобщение
Покажи мнения от преди:   
   Форум за математика Форуми -> Теория на числата, Признаци за деление Часовете са според зоната GMT + 2 Часа
Страница 1 от 1

 
Идете на:  
Не Можете да пускате нови теми
Не Можете да отговаряте на темите
Не Можете да променяте съобщенията си
Не Можете да изтривате съобщенията си
Не Можете да гласувате в анкети
You cannot attach files in this forum
Може да сваляте файлове от този форум
Copyright © 2005-2021 math10.com.