Минимальное основание числа 11 может быть 2. Т.к. максимальная цифра в записи числа = 1. Тогда минимальный набор цифр в системе счисления: 0, 1, что соответствует системе счисления 2. И считается, числа в системе счисления представлены в порядке возрастания, т.е. если в числе указана 1, то в данной системе счисления есть все меньшие до 0. Есть ли бОльшие числа в данной системе счисления, достоверно неизвестно.
Минимальное основание числа 99 может быть 10. Если в числе присутствует число 9 (которое является максимальным среди чисел), то данная система счисления содержит как минимум: 0,1,2,3,4,5,6,7,8,9. Что соответствует системе счисления с основанием 10.
Жаль я не силён с указателями, посмотри на код, идую возможно поймёшь, а так компилятор ошибку в функции test выводит, типо не может с массивом там работать, возможно ты сможешь исправить
#include <iostream> #include <stdlib.h>
using namespace std;
int n,l;
int test(int *a, int s) { int ret=0; int c=0; int i,j; for(i=0;i<l;i++) { c=0; for(j=i+1;j<l;j++) if(a[s][i]==a[s][j]) c++; if(ret<c) ret=c; } return ret; }
int compare(const void* a, const void* b) { return *(int *)a-*(int *)b; }
int main() { int i,j,t; int a[10][10],b[10][10]; cin >> n >> l; for(i=0;i<n;i++) for(j=0;j<l;j++) cin >> a[i][j]; int *c = new int[n]; for(i=0;i<n;i++) c[i]=test((int*)a,i); qsort(c,n,sizeof(int),compare); for(i=0;i<n;i++) { for(j=0;j<n;j++) if(test(&a[0][0],i)==c[i]) for(t=0;t<l;t++) b[i][t]=a[i][t]; } }
Т.к. максимальная цифра в записи числа = 1. Тогда минимальный набор цифр в системе счисления: 0, 1, что соответствует системе счисления 2.
И считается, числа в системе счисления представлены в порядке возрастания, т.е. если в числе указана 1, то в данной системе счисления есть все меньшие до 0.
Есть ли бОльшие числа в данной системе счисления, достоверно неизвестно.
Минимальное основание числа 99 может быть 10.
Если в числе присутствует число 9 (которое является максимальным среди чисел), то данная система счисления содержит как минимум: 0,1,2,3,4,5,6,7,8,9. Что соответствует системе счисления с основанием 10.
#include <iostream>
#include <stdlib.h>
using namespace std;
int n,l;
int test(int *a, int s)
{
int ret=0;
int c=0;
int i,j;
for(i=0;i<l;i++)
{
c=0;
for(j=i+1;j<l;j++)
if(a[s][i]==a[s][j])
c++;
if(ret<c) ret=c;
}
return ret;
}
int compare(const void* a, const void* b)
{
return *(int *)a-*(int *)b;
}
int main()
{
int i,j,t;
int a[10][10],b[10][10];
cin >> n >> l;
for(i=0;i<n;i++)
for(j=0;j<l;j++)
cin >> a[i][j];
int *c = new int[n];
for(i=0;i<n;i++)
c[i]=test((int*)a,i);
qsort(c,n,sizeof(int),compare);
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
if(test(&a[0][0],i)==c[i])
for(t=0;t<l;t++)
b[i][t]=a[i][t];
}
}