千葉大学 融合理工学府 数学情報科学専攻 数学・情報数理学コース 2017年8月実施 専門 A5
标签:
Author
祭音Myyura (co-authored with GPT 6 Astra)
Description
次の Pascal プログラムについて答えよ。
function f(n: integer; a, b, c: boolean): boolean;
var ta, tb, tc: boolean;
var r: integer;
begin
ta := false; tb := false; tc := false;
r := n mod 4; n := n div 4;
if c and (r = 1) then tc := true;
if b then begin
case r of
1: tc := true;
2: begin tb := true; tc := true; end
end
end;
if a then begin
case r of
1: tc := true;
2: begin tc := true; tb := true; end;
3: begin ta := true; tb := true; tc := true; end
end
end;
if (n > 0) then f := f(n, ta, tb, tc)
else if (r = 0) then f := true else f := tc;
end;
(1) f(22, false, true, true) と f(22, false, false, true) の値を求めよ。(2) に対し f(x, true, true, true) が true となる を特徴付けよ。
题目描述
阅读上述 Pascal 程序。(1) 求指定的两个调用的返回值。(2) 对非负整数 ,刻画调用 f(x, true, true, true) 返回真的全部 。
Kai
(1) なので、桁を の順に処理する。初期状態が (false,true,true) なら状態は
(false,true,true) -> (false,true,true) -> (false,false,true) -> (false,false,true)
となり true。初期状態が (false,false,true) なら最初の桁 で三成分とも false となり、その後も変わらず、返り値は false。
(2) 答えは 、または四進表示が (, )となる整数である。
実際、下位から上位へ処理すると、桁 の後には状態 (true,true,true)、桁 の後には (false,true,true)、桁 の後には (false,false,true) となる。ただし、次に読める桁はそれぞれ 、、 に限られ、それ以外では全成分が false になる。桁 も全成分を false にする。したがって正整数では、零の桁がなく、上位から下位へ桁が広義増加することが必要十分である。 は最後の分岐で true となる。