本科毕设题目推荐系统

from numpy import *
import random
import numpy as np
from sklearn.cluster import KMeans
import re
import matplotlib as mpl
import matplotlib.pyplot as plt
import matplotlib.colors
import csv
import pandas as pd
from sklearn.metrics import silhouette_score
from scipy.spatial.distance import cdist
import imp
import imp

#计算两个点之间的欧氏距离
def calcuDistance(vec1, vec2):
    return np.sqrt(np.sum(np.square(vec1 - vec2)))

#根据距离质心的大小定义用户目前所处的等级
def UserRank(AC_num, ua_centroids):
    min = 100000
    userRank = mini = -1
    rows = shape(ua_centroids)[0]
    for i in range(rows):
        if calcuDistance(AC_num, ua_centroids[i][0]) < min:
            min = calcuDistance(AC_num, ua_centroids[i][0])
            mini = i
    return mini+1


#统计每个用户等级的人数
def UserRank_cnt():
    cntuserrank1 = 0
    cntuserrank2 = 0
    cntuserrank3 = 0
    cntuserrank4 = 0
    cntuserrank5 = 0
    rows = shape(UAKMat)[0]
    for i in range(rows):
        x = UserRank(UAKarray[i][0], ua_centroids)
        if x == 1:
            cntuserrank1 += 1
        elif x == 2:
            cntuserrank2 += 1
        elif x == 3:
            cntuserrank3 += 1
        elif x == 4:
            cntuserrank4 += 1
        else:
            cntuserrank5 += 1
    return cntuserrank1,cntuserrank2,cntuserrank3,cntuserrank4,cntuserrank5


#根据AC题量的多少给不同题目自定义难度等级
def ProbRank_Cnt(AKMat, pa_centroids):
    cntprobrank1 = 0
    cntprobrank2 = 0
    cntprobrank3 = 0
    cntprobrank4 = 0
    cntprobrank5 = 0
    rows1 = shape(AKMat)[0]
    rows2 = shape(pa_centroids)[0]
    ARKMat = AKMat
    ARKMat = np.insert(ARKMat, 1, values=0, axis=1)
    for i in range(rows1):  # i=0
        min = 1000000
        for j in range(rows2):
            if calcuDistance(AKMat[i], pa_centroids[j]) < min:
                min = calcuDistance(AKMat[i], pa_centroids[j])
                minJ = j
        ARKMat[i, 1] = 5-minJ
        if minJ == 0:
            cntprobrank5 += 1
        elif minJ == 1:
            cntprobrank4 += 1
        elif minJ == 2:
            cntprobrank3 += 1
        elif minJ == 3:
            cntprobrank2 += 1
        elif minJ == 4:
            cntprobrank1 += 1
    return ARKMat,cntprobrank1,cntprobrank2,cntprobrank3,cntprobrank4,cntprobrank5


#根据不同难度等级所带的标记不同,统计出不同难度等级的题量有多少
def showRecommend(APARKMat):
    ProbRank_Cnt(AKMat, pa_centroids)
    centroids0 = []
    centroids1 = []
    centroids2 = []
    centroids3 = []
    centroids4 = []
    row = shape(APARKMat)[0]
    for i in range(row):
        if APARKMat[i, 2] == 1:
            centroids0.append(APARKMat[i, 0])
        elif APARKMat[i, 2] == 2:
            centroids1.append(APARKMat[i, 0])
        elif APARKMat[i, 2] == 3:
            centroids2.append(APARKMat[i, 0])
 
  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
模拟IC设计是集集成电路设计和模拟电路设计于一体的一门学科。本科毕业设计是对学生进行综合实践和能力培养的重要环节。以下是一个模拟IC设计的本科毕设题目题目:基于CMOS技术的低功耗温度传感器设计与仿真 设计目标: 1. 设计一个可用于测量环境温度的低功耗温度传感器。 2. 传感器应具备高精度、宽工作温度范围和低功耗等特点。 3. 使用CMOS技术实现电路设计,并考虑路由布局、功耗控制和抗干扰等问题。 设计要求: 1. 设计与实现温度传感器的模拟前端电路,包括温度感知电路和电压测量电路。 2. 考虑电源供应问题,实现低功耗的电源管理电路。 3. 通过模拟信号处理电路,将温度信号转换为数字信号输出。 4. 提高设计的精度和稳定性,考虑校准电路和自适应控制技术。 5. 进行电路、布局和时序仿真,分析电路性能和功耗。 设计步骤: 1. 研究CMOS工艺和温度感知理论,了解相关背景知识。 2. 设计温度感知电路的核心功能模块,如温度敏感元件、运算放大器和温度补偿电路等。 3. 设计电压测量电路,以实现对温度信号的采样和放大。 4. 设计电源管理电路,实现低功耗和电源噪声抑制等功能。 5. 设计模拟信号处理电路,将模拟温度信号转换为数字信号输出。 6. 进行电路布局和布线设计,考虑抗干扰和功耗控制等因素。 7. 进行电路仿真,验证设计的性能和功耗。 8. 进行校准电路和自适应控制电路的设计和仿真,提高系统的精度和稳定性。 9. 分析仿真结果,优化设计方案,并进行性能评估和测试。 10. 撰写设计报告,总结设计过程和结果,提出改进措施和未来发展方向。 通过这个本科毕设题目,可以使学生掌握模拟IC设计的基本理论与技术,了解CMOS工艺和温度感知原理,并培养电路设计、仿真和优化的能力。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值