SPI試験の問題をプログラミングで考える(MATLAB,FreeMat)
% SPI試験の問題 分割払い(1)
% 新しくエアコンを購入する。購入時に価格の何割かを支払い、残額を8回に均等に
% 分割して支払う。 このとき、分割手数料として残額の1 / 5を加えた額を8等分
% して支払うこととなる。
%
% 頭金が購入価格の1 / 5のとき、分割払い1回あたりの支払い額は購入価格の
% どれだけにあたるか。
% 一回当たりの支払額yは
y=(1-1/5)*(1+1/5)/8
% 分数の計算を手計算して
yy=3/25
% SPI試験の問題 分割払い(2)
% 新しくエアコンを購入する。購入時に価格の何割かを頭金として支払い、
% 残額を8回に均等に分割して支払う。 このとき、分割手数料として
% 残額の1 / 5を加えた額を8等分して支払うこととなる。
%
% 分割払い1回の支払い額を購入価格の1 /10にするためには、
% 頭金として購入価格のどれだけを支払えばよいか。
% 分割払い分を等式にする
% 1/10*8=(1-x)/5*6、頭金の割合をxとする
% 1-x=1/10*8*5/6
x=1-1/10*8*5/6
xx=1/3
% SPI試験の問題 直線の式と不等式
% 以下の三つの不等式を同時に満たす範囲をグラフ上に示しなさい。
% y1>x+3; y2>-3*x-2; y3<5
x=-3:0.8:5; y=(-10:1:10)';
y1=x+3; y2=-3*x-2; y3=5.*x./x;
plot(x,[y1;y2;y3],'b-'); grid on; hold on
% uncommentで下の%を外すと赤の*で表示されます
% YX=y*ones(1,size(x,2));
% for i=1:size(x,2)
% for j=1:size(y,1)
% if YX(j,i)>y1(i) && YX(j,i)>y2(i) && YX(j,i)<y3(i)
% plot(x(i),YX(j,i),'r*');
% end
% end
% end
% SPI試験の問題 放物線の式と不等式
% 以下の三つの不等式を同時に満たす範囲をグラフ上に示しなさい。
% y1<-x+3; y2>-x.^2+5; x>0
x=-3:0.1:4; y=(-15:0.5:10)';
y1=-x+3; y2=-x.^2+5;
plot(x,[y1;y2],'b-'); grid on; hold on
% uncommentで下の%を外すと赤の*で表示されます
% YX=y*ones(1,size(x,2));
% for i=1:size(x,2)
% for j=1:size(y,1)
% if YX(j,i)<y1(i) && YX(j,i)>y2(i) && x(i)>0
% plot(x(i),YX(j,i),'r*');
% end
% end
% end
場合の数 順列の問題
% 円グラフ(50%+25%+15%+10%=100%)を赤、黄、緑、青の4色で塗る。
% 隣り合わなければ、同じ色を使ってもよい。
% 色の塗り方は何通りあるか。
% 4色とも異なる色を使う場合
p4_4=prod(1:4) % prodは掛け算
% 2色を使う場合
p4_2=prod(4-2+1:4)
% 3色を使う場合、塗り方は2通りある。
p4_3=prod(4-3+1:4)
Answer= 2 * p4_3 + p4_2 + p4_4
場合の数 組み合わせ nCr
% A地点からB地点まで行く、最短経路は何通りあるか
% 8回進むとゴールに到達するので、その内3回は下へ進む。
% 下へ進む3回は8回中の何回目であるかの場合の数
C8_3=prod(8-3+1:8)/prod(1:3)
% P点を経由してB地点まででは何通りあるか。
C5_2xC3_1=prod(5-2+1:5)/prod(2-1+1:2)*prod(3-1+1:3)/1
場合の数 組み合わせ nCr
% 3,3,3,4,4,5の数字が書かれたカード6枚をすべて
% 使ってできる6桁の整数の個数を求めよ
% 3が3枚、4が2枚、それぞれの配置場所を決めればよい。3と4が決まれば残りが5。
C6_3xC3_2xC1_1=prod(6-3+1:6)/prod(1:3)*prod(3-2+1:3)/prod(1:2)
上記のSPI試験問題は、柳本新二「一日10分」から始めるSPI基本問題集 15年版、大和書房 より引用しました。