商品关联次数统计
提交数: 987, 通过率: 42.55%, 平均分: 46.4
题目描述:
人们通过研究发现,将某些不同商品(比如休闲食品和饮料)陈列在一起销售,能使相关商品的销售量增长20%到30%(比如“啤酒和尿布”的故事)。为了寻找这些能相互促进销量的商品,就需要进行商品的关联分析。
为了统计相关商品的关联次数,需要对每个购物篮中的清单进行统计。
输入格式:
第一行,三个数,表示商品的种类n,购物篮的个数m,询问的次数T。
接下来,m行,每行包括若干商品的名称,每两种商品名称之间用一个逗号隔开,每种商品名前只有一个x字符,后面跟数字编号。
接下来,T行,每行两个整数x,y,表示询问x商品与y商品的关联次数。
输出格式:
共T行。
每行一个数,表示根据询问,回答的相应次数。
样例输入:
9 3 4 x1,x2,x3,x4,x5,x6 x1,x4,x7,x8,x9 x2,x5,x6,x7,x9 1 4 5 6 7 8 3 8
样例输出:
2 2 1 0
提示:
教材必修1的P102。
算法提示:
1.对每个购物篮分析:该购物篮中的商品,两两之间有一次关联。
2.二维数组的初始化:
a = [ [ 0 for j in range( n) ] for i in range(m) ] #使用列表生成式,建立m行,n列的二维列表(数组)
或者用下列的方法建立二维列表
b=[]
for i in range( n ):
b.append(0)
a=[]
for i in range( m ):
a.append( b )
print(a)
3.请完善本题的程序:
n, m, T = map( int, input().split( ) )
a = [ [ 0 for i in range( n ) ] for j in range( n ) ]
for i in range( m ):
s = input( ).split(',')
for j in range( len( s) ):
s[ j ] = int( s[ j ][ 1: ] )
#登记每个篮子中两两商品的关联
for i in range( T ):
x,y = map( int , input().split( ) )
print( a[ x-1 ] [ y-1 ] )
时间限制: 1000ms空间限制: 256MB
来源: 必修1教材P59