Skocz do zawartości

  •  
  • Mini kompendium
  • MimeTeX
  • Regulamin

- zdjęcie

Ereinion

Rejestracja: 22 Feb 2009
Offline Ostatnio: Aug 27 2017 17:04
*****

#127641 równane w lczbach naturalych

Napisane przez Ereinion w 03.07.2016 - 13:09

Ja mam średnio eleganckie to rozwiązanie, ale niech będzie.

 

Zauważmy, że jak 2|x to 2|y i 2|z, więc dalej skupiamy się na przypadku x nieparzystego. Z podobnych powodów możemy dalej przyjąć, że 3 \not | x. Na początku szukamy rozwiązań tylko takich, że NWD(x,y) = 1.

 

Mamy (z+x)(z-x) = 3y^2.

 

Przyjmijmy najpierw, że 3|z+x.

 

Zapiszmy y = 2^t \cdot k \cdot m, gdzie t \ge 0 oraz  NWD(k,m) = 1, i k,m są nieparzyste, a także z+x = 3k^2 \cdot 2^a oraz z-x = m^2 \cdot 2^b, dla pewnych nieujemnych a,b, takich że a + b =2t (przy czym, jesli t > 0, to min(a,b)=1)

 

Takie przedstawienie jest możliwe, bo gdyby było dla jakiejś liczby pierwszej p|y tak, że p|z+x i p|z-x to p|2x, więc musiałoby być być p = 2. Dodatkowo, 2 || NWD(x-z,x+z).

 

Innymi słowy, mamy

 

(x, y, z) = (3k^2 \cdot 2^{a-1} - m^2 \cdot 2^{b-1}, 2^t \cdot k \cdot m, 3k^2 \cdot 2^{a-1} + m^2 \cdot 2^{b-1})

 

 

Może też być tak, że 3|z-x i wówczas dostajemy trójki

 

(x, y, z) = (k^2 \cdot 2^{a-1} - 3m^2 \cdot 2^{b-1}, 2^t \cdot k \cdot m, k^2 \cdot 2^{a-1}+ 3m^2 \cdot 2^{b-1})

 

Tym sposobem wygenerujemy wszystkie rozwiązania, dla których NWD(x,y) = 1. Pozostałe wygenerujemy biorąc (dx,dy,dz) dla dowolnego d \in \mathbb{N}.

 

Jeszcze na końcu taka uwaga, że albo trzeba opisać możliwe wartości k i m tak, żeby x nie wychodził ujemny albo wziąć do rozwiązania |x| jako że chcemy mieć liczby naturalne.


  • 1


#127637 równane w lczbach naturalych

Napisane przez Ereinion w 01.07.2016 - 22:57

Jak tak rozwiązujesz te zadania, to wystarczyło napisać, że (1,1,2) jest rozwiązaniem i zakończyć. W matematyce przez "rozwiąż równanie" zwykło się rozumieć "znajdź wszystkie rozwiązania lub udowodnij, że nie istnieją" :)

 

Ja generalnie nie mam nic przeciwko częściowym rozwiązaniom, ale dobrą praktyką jest zaznaczyć wyraźnie "nie wiem jak to rozwiązać w ogólnym przypadku, ale jeśli x|y to mamy następujące rozwiązania:..."

 

Jestem pod wrażeniem ilości archwialnych zadań, które rozwiązujesz, ale oby to nie było kosztem jakości, tak jak tutaj.


  • 1


#127636 ciekawy układ równań

Napisane przez Ereinion w 01.07.2016 - 22:48

Blef, ale nie ważna jest droga do sukcesu. Liczy się sukces.

 

Nie wiem co to za jakieś podwórkowe złote myśli, ale u nas w matematyce to tak nie działa :)

 

 

a suma dwóch liczb niewymiernych nigdy nie da liczby całkowitej

 

\sqrt{2} + (2-\sqrt{2}) ?


  • 1


#127631 ciekawy układ równań

Napisane przez Ereinion w 01.07.2016 - 11:58

 

x i y występują symetrycznie, więc powinno być x^2+y=y^2+x=2 \quad\to\quad x=y=1

 

 

To jest blef, z symetrii wynika tylko, że jeśli (x,y) jest rozwiązaniem, to (y,x) też. Np w równaniu x^2+y^2=2 zmienne x i y występują symetrycznie, a wcale nie musi być x^2=y^2.


  • 1


#127314 Trzy rozwiązania spełniające podany warunek

Napisane przez Ereinion w 31.05.2016 - 13:10

To zadanie można zrobić prawie natychmiast jak się użyje wzorów Viete'a :)


  • 1


#127176 Krzywa kubiczna 3d - Gnuplot lub inny nieduży program

Napisane przez Ereinion w 05.05.2016 - 09:12

Jeśli boisz się, że Twój komputer nie podoła, to możesz spróbować Mathematica Online. To jest taka zwykła Mathematica tylko działa w chmurze, więc nic nie trzeba instalować. Niestety tylko pierwsze 15 dni korzystania jest darmowych, ale jak potrzebujesz tego jednorazowo, to powinieneś zdążyć. A i wykresy z Mathematiki są wizualnie przyjemniejsze niż te z Matlaba :)


  • 1


#127175 Java

Napisane przez Ereinion w 05.05.2016 - 09:04

Najlepiej nauczyć się samemu pisząc jakąś prostą aplikację na Androida :) Nauka programowania z telefonu chyba nie jest zbyt wygodna, raczej polecałbym jakiś internetowy tutorial i przerabianie go na komputerze.


  • 1


#126889 Java

Napisane przez Ereinion w 16.03.2016 - 09:09

Tu masz fajną paczkę java + netbeans. Netbeans to jest całkiem spoko IDE do javy, ale jak masz swoje inne ulubione, to możesz pobrać samo najnowsze java jdk i zainstalować.

 

http://www.oracle.co...jsp-142931.html


  • 1


#126770 Wskaźniki w C++

Napisane przez Ereinion w 26.02.2016 - 16:06

Tak nazwałem sobie zmienną od "modified table". Chodzi o to, żeby tej zmienionej tablicy nie wypisywać od razu na standardowe wyjście, tylko przechować gdzieś, a wypisać na końcu.


  • 1


#126768 Wskaźniki w C++

Napisane przez Ereinion w 26.02.2016 - 15:16

No tak, tylko Twoje rozwiązanie z dwiema pętlami nie działało dobrze, bo wypisywało tylko co drugi element listy :)

Oczywiście można to wszystko zrobić i w jednej pętli, np tak:

#include <iostream>
#include <cstdlib>
#include <ctime>
#include <sstream>

int main() {
    srand(time(NULL));
    int tab[10];
    std::stringstream mod_table;
    for(int i = 0; i < 10; ++i) {
        *(tab + i) = rand() % 6 + 1;
        std::cout << " " << *(tab + i);
        if (i % 2 == 0) *(tab + i) = 7;
        mod_table << " " << *(tab + i);
    }
    std::cout << std::endl;
    std::cout << mod_table.str() << std::endl;
    return 0;    
}

  • 1


#126754 Wskaźniki w C++

Napisane przez Ereinion w 26.02.2016 - 09:25

Tak jest, ale jak wolisz z i to można np tak:

#include <iostream>
#include <cstdlib>
#include <ctime>

int main() {
    srand(time(NULL));
    int tab[10];
    for(int i = 0; i < 10; ++i) {
        *(tab + i) = rand() % 6 + 1;
        std::cout << " " << *(tab + i);
    }
    std::cout << std::endl;
    for(int i = 0; i < 10; i += 2) *(tab + i) = 7;
    for(int i = 0; i < 10; ++i) std::cout << " " << *(tab + i);
    return 0;    
}

  • 1


#126752 Wskaźniki w C++

Napisane przez Ereinion w 26.02.2016 - 00:06

Np tak można to zrobić

#include <iostream>
#include <cstdlib>
#include <ctime>

int main() {
    srand(time(NULL));
    int tab[10];
    int *w;
    for(w = &tab[0]; w <= &tab[9]; ++w) {
        *w = rand() % 6 + 1;
        std::cout << " " << *w;
    }
    std::cout << std::endl;
    for(w = &tab[0]; w <= &tab[9]; w += 2) *w = 7;
    for(w = &tab[0]; w <= &tab[9]; ++w) std::cout << " " << *w;
    return 0;    
}

  • 1


#126750 Wskaźniki w C++

Napisane przez Ereinion w 25.02.2016 - 23:13

Tablica tab w pamięci to po prostu zaalokowane miejsce na 10 intów (z reguły to jest ciągły obszar pamięci, ale nie ma gwarancji, pewnie to zależy od kompilatora). Wykonanie w++ powoduje, że w pokazuje na kolejny element tablicy, a wykonanie tej instrukcji w momencie, gdy w pokazuje już na ostatni element, powoduje "wyjście" w poza zaalokowany obszar pamięci.


  • 1


#126748 Wskaźniki w C++

Napisane przez Ereinion w 25.02.2016 - 18:49

Po wykonaniu pierwszej pętli w wskazuje na komórkę pamięci "za" tablicą tab. W drugiej pętli próbujesz coś zapisać w to miejsce i stąd błąd naruszenia ochrony pamięci.


  • 1


#126746 Wskaźniki w C++

Napisane przez Ereinion w 25.02.2016 - 17:34

To w pętli for zrób i+=2 zamiast i++ i będziesz odwiedzał co drugi element tablicy.


  • 1