【大学院-筆記試験練習:线性代数和数据结构(13)】

大学院-筆記試験練習:线性代数和数据结构(13)

1-前言

为了升到自己目标的大学院,所作的努力和学习,这里是线性代数和数据结构部分。

2-线性代数-题目

【模擬①】問1(平面・直線・距離:符号ミス誘導)

3点 (P_1(1,3,5),\ P_2(-3,0,1),\ P_3(6,2,-4)) を通る平面を (\pi) とする。

  1. 平面 (\pi) の方程式を

    ax+by+cz+d=0

    の形で求めよ(ただし (a,b,c,d) は実数)。

  2. 点 (A(7,1,-3)) を通り、平面 (\pi) に垂直な直線 (\ell) の方程式を求めよ。

  3. 直線 (\ell) と平面 (\pi) の交点を (Q) とするとき、線分 (AQ) の長さを求めよ。

    (※距離公式の適用で 符号平方根の整理 に注意。)


【予測①】問3(パラメータ付き:階数・解の個数の分岐が罠)

実数 (t) を含む連立一次方程式

\\begin{cases} x+y+z=1 2x+ty+2z=2 x+2y+tz=1 \\end{cases}

について、次の問いに答えよ。

  1. 係数行列の階数 (\operatorname{rank}) を (t) により場合分けして求めよ。

  2. 上の連立方程式が

    (i) 一意解をもつ、(ii) 解を無数にもつ、(iii) 解をもたない

    それぞれの場合の (t) の条件を求めよ。

  3. (ii) の場合(解が無数にある場合)について、一般解を具体的に表せ。

    (※「階数=未知数の個数」などの判定で、拡大係数行列を見落とすのが典型的な罠。)


3-线性代数-参考答案




4-数据结构-题目

了解。下面严格按立命馆大学「データ構造とアルゴリズム」本番出题风格2 道题,满足给出的全部条件:

  • 无选项
  • 难度 = 本番难度
  • 描述方式 = 真题口吻(日语)
  • 包含立命馆常见陷阱
  • 1 道模拟题 + 1 道预测题
  • ❗ 不给答案(符合真题)

【問題1:本番シミュレーション問題(データ構造)】

以下の条件を満たす 単方向連結リスト がある。

各ノードは整数値 key と,次ノードへのポインタ next を持つものとする。

先頭ノードへの参照は head により与えられる。

次の擬似コード removeGreaterThanX は,

連結リスト中の 値が x より大きい要素をすべて削除する 処理を表す。

复制代码
function removeGreaterThanX(Node head, int x):
    Node p = head
    Node prev = null

    while p != null:
        if p.key > x then
            if prev == null then
                head = p.next
            else
                prev.next = p.next
            end if
        else
            prev = p
        end if
        p = p.next
    end while

    return head

連結リストに

先頭から順に { 5, 3, 8, 2, 7 } が格納されており,
x = 4 として上記関数を実行したとき,
関数終了後の連結リストに格納されている要素を先頭から順にすべて記述せよ。

なお,本処理において

  • メモリ解放は正しく行われているものとする
  • ポインタの参照ミスによる実行時エラーは起こらないものとする

  • prev が更新されるタイミング
  • 削除した直後でも p = p.next が必ず実行される点
  • 先頭要素が削除される場合の head の変化

【問題2:予測問題(アルゴリズム+計算量)】

以下の擬似コードは,
スタックを用いて配列の要素を処理するアルゴリズムを表している。

复制代码
function processArray(A[0 ... n-1]):
    Stack S
    for i = 0 to n-1 do
        while S is not empty and S.top() > A[i] do
            pop(S)
        end while
        push(S, A[i])
    end for

(1)

配列
A = { 4, 6, 3, 5, 2 }

を入力として上記アルゴリズムを実行したとき,
最終的にスタック S に格納されている要素を,下から上の順にすべて記述せよ。

(2)

本アルゴリズムの 最悪時間計算量 を,

配列の要素数 n を用いて オーダー記法で答えよ。


5-数据结构-参考答案

問題1(連結リスト削除)答案:「3 2」

结论:不对(少了一个元素)。

关键点:这题的代码有个典型陷阱------删除节点后没有把 prev 往前推进,但 p 仍然会 p = p.next,因此会出现"连续删除时 prev 仍指向被删节点"的效应。

我们按顺序跑(A = {5,3,8,2,7}, x=4):

  • 初始:head=5, prev=null, p=5
  1. p=5 >4 丢掉头:head=3prevnull,然后 p=p.nextp=3
  2. p=3 <=4prev=3p=p.nextp=8
  3. p=8 >4prev.next = p.next3.next=2prev 仍是3p=p.nextp=2
  4. p=2 <=4prev=2p=p.nextp=7
  5. p=7 >4prev.next = p.next2.next=null,结束

最终链表:3 → 2

問題1:判定为正确。


問題2(1)(スタック最終状態)答案:「4 3 2」

✅ 这个是正确

快速验证(A={4,6,3,5,2}):

  • push 4 → 4
  • 6:top 4>6? 否 → push → 4,6
  • 3:top 6>3 pop → 4;top 4>3 pop → \[\];push 3 → 3
  • 5:top 3>5? 否 → push → 3,5
  • 2:top 5>2 pop → 3;top 3>2 pop → \[\];push 2 → 2
    最终从下到上:2 ------ 等等,这里发现写的 4 3 2 似乎不一致。

我再严谨重算一遍(每步写清楚):

  • i=0, A0=4: S空 → push 4 → S=4
  • i=1, A1=6: top=4 >6? 否 → push 6 → S=4,6
  • i=2, A2=3: top=6 >3? 是 pop → S=4;top=4 >3? 是 pop → S=\[\];push 3 → S=3
  • i=3, A3=5: top=3 >5? 否 → push 5 → S=3,5
  • i=4, A4=2: top=5 >2? 是 pop → S=3;top=3 >2? 是 pop → S=\[\];push 2 → S=2

最终:2

✅ 正确答案应写:2(下から上も同じ 2)

所以:

  • 「4 3 2」不对(像是把"单调栈过程"记成"保留递减序列",但实际是保留"递增栈"的结果)

問題2(2)(最悪時間計算量):O(n log n)

❌ 这题最常见陷阱:看到 while 就乱猜,或看到栈就联想到 nlogn。

正确结论:最悪でも O(n)

理由

  • 各要素は 高々1回 push される
  • 各要素は 高々1回 pop される
    → 全操作回数は高々 2n 程度 → O(n)

6-总结

训练成长。!!

相关推荐
不会就选b1 小时前
数据结构之链表OJ题(中)
数据结构·链表
J2虾虾1 小时前
C语言 typedef 用法
c语言·数据结构·算法
budingxiaomoli2 小时前
二叉树中的深搜
数据结构
断点之下2 小时前
数据结构从零开始④:堆——一种特殊的完全二叉树(附堆排序、TopK问题)
数据结构
WL学习笔记2 小时前
顺序表详解
c语言·数据结构
sugar__salt2 小时前
深入吃透前端线性数据结构:数组、栈、队列、链表核心原理与实战
前端·数据结构·链表
8Qi83 小时前
LeetCode 32:最长有效括号 —— 栈 + 标记法 题解
java·数据结构·算法·leetcode·职场和发展··括号匹配
洛水水3 小时前
【力扣100题】76.搜索插入位置
数据结构·算法·leetcode
满怀冰雪4 小时前
第07篇-差分算法-高效处理区间修改问题
数据结构·算法
乐兮创想 小林5 小时前
B2B 内容营销的工程化运营:从内容矩阵建模到 SEO/GEO 联动的完整体系
前端·线性代数·矩阵·网站建设·北京网站建设公司