- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
#include <iostream>
class TerVer {
public:
short d1, d2, d3, d4;
short totalCounter, goodCounter;
bool DoneInc;
TerVer(): d1(1), d2(0), d3(0), d4(0), totalCounter(1), goodCounter(0), DoneInc(false) {}
bool IsGood() {
return (
(d1==d2 && d1!=d3 && d1!=d4 && d3!=d4) ||
(d1==d3 && d1!=d2 && d1!=d4 && d2!=d4) ||
(d1==d4 && d1!=d2 && d1!=d3 && d2!=d3) ||
(d2==d3 && d2!=d1 && d2!=d4 && d1!=d4) ||
(d2==d4 && d2!=d1 && d2!=d3 && d1!=d3) ||
(d3==d4 && d3!=d1 && d3!=d2 && d1!=d2)
) ? true : false;
}
void Inc() {
d4++;
if(d4>9) { d4=0; d3++; if(d3>9) {d3=0; d2++; if(d2>9) { d2=0; d1++; if(d1>9) DoneInc = true; } } }
if (!DoneInc) { totalCounter++; if (IsGood()) goodCounter++; }
}
};
int main() {
TerVer z;
while(!z.DoneInc) {
z.Inc();
}
cout << z.goodCounter << " / " << z.totalCounter << " = " << (double)z.goodCounter/z.totalCounter << endl;
return 0;
}
Найти вероятность того, что в случайном четырехзначном числе ровно две цифры совпадают.
Вот что бывает, когда лень думать.