有60個人要組建一個聚會,每人的喜好是一個數(shù)值,為提升聚會效果,會務(wù)組要把參會人員進行分組,分組原則是: (1)每組不超過8人 (2)組內(nèi)新增人員的喜好值必須與現(xiàn)有組內(nèi)人員的平均喜好值相差在5以內(nèi) (3)若新增人員無法加入現(xiàn)有小組,則被分入新組建小組 小V同學(xué)根據(jù)上述算法設(shè)計編寫了VB程序,界面如圖所示,單擊“分組”按鈕后,在列表框list1輸出分組結(jié)果,每組一行,回答下列問題: Dim a(1 To 60)As Integer'各人的喜好值 Private Sub Command1_Click ( ) Dim i As Integer,j As Integer,c As Integer,s as String Dim b(1 To 480)As Integer'分組后喜好值 Dim ave(1 To 60)As Integer,num(1 To 60)As Integer For i=1 To 60‘預(yù)設(shè)60個分組 num(i)=1 ave(i)=0 Next i c=1:ave(1)=a(1):b(1)=a(1) For i=2 To 60 For j=1 To c If Abs(a(i)-ave(j))<=5 And num(j)<8 Then ave(j)=
(ave(j)*num(j)+a(i))/(num(j)+1)
(ave(j)*num(j)+a(i))/(num(j)+1)
num(j)=num(j)+1 b(j*8-8+num(j))=a(i) Exit For End If Next j If
j=c+1或j>c
j=c+1或j>c
Then b(c*8+1)=a(i) ave(j)=a(i) c=c+1 End If Next i s=““ For i=1 To c For j=1 To
num(i)
num(i)
s=s+Str(b((i-1)*8+j)) Next j List1.AddItem s s=““ Next i End Sub Private Sub Form_Load
( )
( )
‘生成60個原始數(shù)據(jù),存入數(shù)組a,數(shù)組b各元素初始化為0,代碼略 End Sub (1)如圖所示,當(dāng)前數(shù)據(jù)已被分組,若再新增一個數(shù)“64”,會被分在第
1.大部分社交軟件都有好友推薦的功能,當(dāng)用戶 A 和用戶 B 的共同好友數(shù)量超過閾值 p 時,由系統(tǒng)向用戶 A 推薦用戶 B。 編寫 VB 程序,實現(xiàn)好友推薦功能。運行程序,列表框 Listl 中顯示用戶 id 及好友列表,在文本框 Textl 中 輸入推薦目標用戶 id,在文本框 Text2 中輸入閾值 p,點擊“推薦”按鈕,在列表框List2 中顯示用戶之間的關(guān)系,在標簽 Label5 中顯示向目標用戶推薦的好友列表。程序運行界面如圖: (1)根據(jù)如圖所示數(shù)據(jù),若輸入用戶 id 為“3”,輸入閾值為“3”,則推薦好友為: