Witam,
Zadanie, które muszę wykonać z pozoru jest trywialne i w zasadzie radzę sobie z każdym jego punktem, ale nie kiedy trzeba połączyć wszystko na raz.
Sprawa wygląda następująco. Do programu muszę wygenerować macierz symetryczną macierz kwadratową NxN. Z tym nie ma najmniejszego problemu. Następnie muszę upewnić się, że wartości w macierzy mają w jednym przypadku mają te same rzędy wielkości, a w innym rzędy wielkości odległe. Tu mam trochę problemu, bo teraz robię tak, że sprawdzam wylosowaną liczbę czy jej wartość bezwzględna jest z przedziału 1-10 po podzieleniu przez poprzednio wylosowaną liczbę. Jeżeli tak, to znaczy, że są tego samego rzędu, jeżeli nie, to losuje jeszcze raz itd. Tu problem polega na tym, że owszem, dwie najbliższe liczby będą tych samych rzędów, ale już niekoniecznie inne w generowanej macierzy. Największy problem sprawia mi połączenie losowania liczb tych samych/odległych rzędów wraz z kolejnym punktem zadania, czyli generowaniem macierzy dodatnio określonej. W programie wykorzystuje rozkład Choleskiego, sprawdzając, czy jest większy od zera.
Podsumowując generowana macierz musi być:
- symetryczna (nie ma problemu)
- dodatnio określona (jest problem)
- posiadać równe/różne rzędy wielkości (jest problem)
- zawierać liczby rzeczywiste, całkowite, ujemne i nieujemne (nie ma problemu)
Pytanie zatem jak połączyć wszystkie te elementy i wygenerować ową macierz. Nie chodzi mi wcale o algorytm, tylko jakieś kolejne kroki, jak to mniej więcej ma wyglądać. Będę bardzo wdzięczny. Dziękuje.