Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
|
|
@ -0,0 +1,63 @@
|
|||
program MissPerm;
|
||||
{$MODE DELPHI} //for result
|
||||
|
||||
const
|
||||
maxcol = 4;
|
||||
type
|
||||
tmissPerm = 1..23;
|
||||
tcol = 1..maxcol;
|
||||
tResString = String[maxcol];
|
||||
const
|
||||
Given_Permutations : array [tmissPerm] of tResString =
|
||||
('ABCD', 'CABD', 'ACDB', 'DACB', 'BCDA', 'ACBD',
|
||||
'ADCB', 'CDAB', 'DABC', 'BCAD', 'CADB', 'CDBA',
|
||||
'CBAD', 'ABDC', 'ADBC', 'BDCA', 'DCBA', 'BACD',
|
||||
'BADC', 'BDAC', 'CBDA', 'DBCA', 'DCAB');
|
||||
chOfs = Ord('A')-1;
|
||||
var
|
||||
SumElemCol: array[tcol,tcol] of NativeInt;
|
||||
function fib(n: NativeUint): NativeUint;
|
||||
var
|
||||
i : NativeUint;
|
||||
Begin
|
||||
result := 1;
|
||||
For i := 2 to n do
|
||||
result:= result*i;
|
||||
end;
|
||||
|
||||
function CountOccurences: tresString;
|
||||
//count the number of every letter in every column
|
||||
//should be (colmax-1)! => 6
|
||||
//the missing should count (colmax-1)! -1 => 5
|
||||
var
|
||||
fibN_1 : NativeUint;
|
||||
row, col: NativeInt;
|
||||
Begin
|
||||
For row := low(tmissPerm) to High(tmissPerm) do
|
||||
For col := low(tcol) to High(tcol) do
|
||||
inc(SumElemCol[col,ORD(Given_Permutations[row,col])-chOfs]);
|
||||
|
||||
//search the missing
|
||||
fibN_1 := fib(maxcol-1)-1;
|
||||
setlength(result,maxcol);
|
||||
For col := low(tcol) to High(tcol) do
|
||||
For row := low(tcol) to High(tcol) do
|
||||
IF SumElemCol[col,row]=fibN_1 then
|
||||
result[col]:= ansichar(row+chOfs);
|
||||
end;
|
||||
|
||||
function CheckXOR: tresString;
|
||||
var
|
||||
row,col: NativeUint;
|
||||
Begin
|
||||
setlength(result,maxcol);
|
||||
fillchar(result[1],maxcol,#0);
|
||||
For row := low(tmissPerm) to High(tmissPerm) do
|
||||
For col := low(tcol) to High(tcol) do
|
||||
result[col] := ansichar(ord(result[col]) XOR ord(Given_Permutations[row,col]));
|
||||
end;
|
||||
|
||||
Begin
|
||||
writeln(CountOccurences,' is missing');
|
||||
writeln(CheckXOR,' is missing');
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue