-
всегда существует такое N: 0..7, что для любого числа K истинно выражение (K and (not $F000) + N shl 12) mod 7 = 0. Другими словами, любое ли число можно привести к делимости на 7, изменив три бита начиная с 13ого.
Есть идеи?
С помощью признака делимости я сходу не смогу.
Опровергнуть небольшим перебором тоже не вышло:
procedure TForm1.Button1Click(Sender: TObject); var K, N: Int64; F: Boolean; begin for K := 0 to $FFFFFFFF do begin F := False; for N := 0 to 7 do if (K and (not $F000) + N shl 12) mod 7 = 0 then begin F := True; break; end; if not F then begin Memo1.Append(IntToHex(K, 0)); Application.ProcessMessages; end; end; end;
-
Удалено модератором
-
> ttUser © (19.06.16 20:19) [1] > Во тебя вштырило то :))
Я по программированию вопросы с трудом на английском задаю, что говорить уже о математике.
Я даже экспериментально установил значение для N:
procedure TForm1.Button1Click(Sender: TObject); var K, N, Id: Int64; begin for K := 0 to $FFFFFFFF do begin Id := K and not ($F000); N := 7 - Id mod 7; if (Id + N shl 12) mod 7 <> 0 then begin Memo1.Append(IntToHex(K, 0)); Application.ProcessMessages; end; end; end;
|