Prikaži potpunu verziju : Program za varijacije sa ponavljanjem
Zlatko P.
25.4.2019, 19:03
Može li neko da napiše program za varijacije sa po avljanjem sa kratkim komentarima o elementima programa? Program u c++
Skoro apsolutno sam siguran da neko može, zašto?
Zlatko P.
26.4.2019, 18:52
Zato što su programi koje sam pronašao na netu uvek sa nekom manom, nedostatkom ili kontekstom koji mi ne ogvorara ili ga ne razumem. Sa objašnjenjem, nadam se, moći ću to da prevaziđem. Ili si postavio filozofsko "zašto", zašto sav ovaj naš trud?!
Kakvo pitanje takav odgovor...
Zašto ne bi postavio ono što si uradio, a potom tražio pomoć za konkretan problem? Ovako deluje da želiš rešenje "na tacni", a ne želiš da ti neko drugi to odradi, jel' tako? :)
Zlatko P.
27.4.2019, 10:16
Hvala ti što si ipak odgovorio. Liči mi sve ovo na uspešnu saradnju.
Dakle, napisao sam članak "Univerzalni interpretator", možeš ga pročitati na https://pangaric.wordpress.com/author/pangaric/
Radi se o o onoj animaciji u formi gif koja izvodi varijacije sa ponavljanjem unutar definisane matrice.
Do sada sam uradio ovo sa generatorom slučajnih brojeva, a ja želim da su to varijacije sa ponavljanjem. Problem je kako svaku varijaciju kao niz prikazati kao matricu.
Moj kod sa generisanjem 200 slučajnih matrica:
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main()
{
srand(time(NULL));
rand();
int Matrica[10][10];
for (int k=1;k<200;k++)
{
for(int i=0; i < 10;i++)
{
for(int j=0; j < 10;j++)
{
Matrica [i][j]=rand() * 2 / RAND_MAX;
cout<<Matrica[i][j]<<" ";
}
cout<<endl;
}
system ("CLS");
cout<<endl;
cout<<endl;
}
}
Zlatko P.
27.4.2019, 11:30
Može da se pročita i na Filozofski magazin
https://filozofskim.blogspot.com/2018/12/zlatko-pangaric-univerzalni.html
Luka Filipovic
28.4.2019, 12:27
for (int k=0;k<=1023;k++) {
cout<< (Matrica [0][0] = (k>>8)&1);
cout<< (Matrica [0][1] = (k>>7)&1);
cout<< (Matrica [0][2] = (k>>6)&1);
cout<< '\n';
cout<< (Matrica [1][0] = (k>>5)&1);
cout<< (Matrica [1][1] = (k>>4)&1);
cout<< (Matrica [1][2] = (k>>3)&1);
cout<< '\n';
cout<< (Matrica [2][0] = (k>>2)&1);
cout<< (Matrica [2][1] = (k>>1)&1);
cout<< (Matrica [2][2] = (k>>0)&1);
cout<< '\n';
cout<< '\n';
}
recimo ovako
Zlatko P.
28.4.2019, 15:40
Hvala, Luka. Hvala svima.
Zlatko P.
29.4.2019, 15:13
https://www.youtube.com/watch?v=LqZQ9w04sb0
jedan pokušaj
Luka, kad napravim matricu 6x5 ili veću, program izbacuje upozorenje i počinje da "vrti" varijacije sa oba kraja. Dobijam upozorenje: [Warning] right shift count >= width of type. Možeš li rešiti ovaj problem? Želeo bih konačno matricu 10x10, pa da završim sa ovim.
Luka Filipovic
9.5.2019, 19:07
umesto int piši unsigned long int i umesto ovih siftovanja bi mozda bolje bilo da pišeš za svaku celiju:
matrica[i] [j] = (k=k>>1)&1
Pokušao sam ali nema poboljšanja. Vidi konkretno. Probao sam i sa matrica[i] [j] = (k=k>>1)&1 u primeru matrice 3x3.
#include<iostream>
#include <cmath>
#include <cstdlib>
using namespace std;
int main(){
unsigned long int Matrica [6][6];
for (int k=0;k<1010041824;k++)
{
cout<<"Varijacije sa ponavljanjem = "<<k;
cout<<endl;
cout<<endl;
cout<< (Matrica [0][0] = (k>>35)&1);
cout<< (Matrica [0][1] = (k>>34)&1);
cout<< (Matrica [0][2] = (k>>33)&1);
cout<< (Matrica [0][3] = (k>>32)&1);
cout<< (Matrica [0][4] = (k>>31)&1);
cout<< (Matrica [0][5] = (k>>30)&1);
cout<< '\n';
cout<< (Matrica [1][0] = (k>>29)&1);
cout<< (Matrica [1][1] = (k>>28)&1);
cout<< (Matrica [1][2] = (k>>27)&1);
cout<< (Matrica [1][3] = (k>>26)&1);
cout<< (Matrica [1][4] = (k>>25)&1);
cout<< (Matrica [1][5] = (k>>24)&1);
cout<< '\n';
cout<< (Matrica [2][0] = (k>>23)&1);
cout<< (Matrica [2][1] = (k>>22)&1);
cout<< (Matrica [2][2] = (k>>21)&1);
cout<< (Matrica [2][3] = (k>>20)&1);
cout<< (Matrica [2][4] = (k>>19)&1);
cout<< (Matrica [2][5] = (k>>18)&1);
cout<< '\n';
cout<< (Matrica [3][0] = (k>>17)&1);
cout<< (Matrica [3][1] = (k>>16)&1);
cout<< (Matrica [3][2] = (k>>15)&1);
cout<< (Matrica [3][3] = (k>>14)&1);
cout<< (Matrica [3][4] = (k>>13)&1);
cout<< (Matrica [3][5] = (k>>12)&1);
cout<< '\n';
cout<< (Matrica [4][0] = (k>>11)&1);
cout<< (Matrica [4][1] = (k>>10)&1);
cout<< (Matrica [4][2] = (k>>9)&1);
cout<< (Matrica [4][3] = (k>>8)&1);
cout<< (Matrica [4][4] = (k>>7)&1);
cout<< (Matrica [4][5] = (k>>6)&1);
cout<< '\n';
cout<< (Matrica [5][0] = (k>>5)&1);
cout<< (Matrica [5][1] = (k>>4)&1);
cout<< (Matrica [5][2] = (k>>3)&1);
cout<< (Matrica [5][3] = (k>>2)&1);
cout<< (Matrica [5][4] = (k>>1)&1);
cout<< (Matrica [5][5] = (k>>0)&1);
cout<< '\n';
cout<< '\n';
system ("CLS");
cout<<endl;
cout<<endl;
}
}
Luka Filipovic
9.5.2019, 22:01
Pokušao sam ali nema poboljšanja. Vidi konkretno. Probao sam i sa matrica[i] [j] = (k=k>>1)&1 u primeru matrice 3x3.
#include<iostream>
#include <cmath>
#include <cstdlib>
using namespace std;
int main(){
int Matrica [6][6];
for (unsigned long int k=0;k<1010041824;k++)
{
cout<<"Varijacije sa ponavljanjem = "<<k;
cout<<endl;
cout<<endl;
cout<< (Matrica [0][0] = (k>>35)&1);
cout<< (Matrica [0][1] = (k>>34)&1);
cout<< (Matrica [0][2] = (k>>33)&1);
cout<< (Matrica [0][3] = (k>>32)&1);
cout<< (Matrica [0][4] = (k>>31)&1);
cout<< (Matrica [0][5] = (k>>30)&1);
cout<< '\n';
cout<< (Matrica [1][0] = (k>>29)&1);
cout<< (Matrica [1][1] = (k>>28)&1);
cout<< (Matrica [1][2] = (k>>27)&1);
cout<< (Matrica [1][3] = (k>>26)&1);
cout<< (Matrica [1][4] = (k>>25)&1);
cout<< (Matrica [1][5] = (k>>24)&1);
cout<< '\n';
cout<< (Matrica [2][0] = (k>>23)&1);
cout<< (Matrica [2][1] = (k>>22)&1);
cout<< (Matrica [2][2] = (k>>21)&1);
cout<< (Matrica [2][3] = (k>>20)&1);
cout<< (Matrica [2][4] = (k>>19)&1);
cout<< (Matrica [2][5] = (k>>18)&1);
cout<< '\n';
cout<< (Matrica [3][0] = (k>>17)&1);
cout<< (Matrica [3][1] = (k>>16)&1);
cout<< (Matrica [3][2] = (k>>15)&1);
cout<< (Matrica [3][3] = (k>>14)&1);
cout<< (Matrica [3][4] = (k>>13)&1);
cout<< (Matrica [3][5] = (k>>12)&1);
cout<< '\n';
cout<< (Matrica [4][0] = (k>>11)&1);
cout<< (Matrica [4][1] = (k>>10)&1);
cout<< (Matrica [4][2] = (k>>9)&1);
cout<< (Matrica [4][3] = (k>>8)&1);
cout<< (Matrica [4][4] = (k>>7)&1);
cout<< (Matrica [4][5] = (k>>6)&1);
cout<< '\n';
cout<< (Matrica [5][0] = (k>>5)&1);
cout<< (Matrica [5][1] = (k>>4)&1);
cout<< (Matrica [5][2] = (k>>3)&1);
cout<< (Matrica [5][3] = (k>>2)&1);
cout<< (Matrica [5][4] = (k>>1)&1);
cout<< (Matrica [5][5] = (k>>0)&1);
cout<< '\n';
cout<< '\n';
system ("CLS");
cout<<endl;
cout<<endl;
}
}
probaj sad
jesam, pisao sam i to u jednoj od varijanti, ali dobijam isto upozorenje
Luka Filipovic
9.5.2019, 23:05
onda probaj unsigned long long
Zlatko P.
10.5.2019, 10:56
Izgleda da je 5x5 maksimum. Hvala
vBulletin® v3.8.7, Copyright ©2000-2024, vBulletin Solutions, Inc.