如何随机化画板中显示的图像

时间:2013-12-11 01:54:12

标签: python random

我非常感谢任何回复。我很困惑,从来不知道这个实验设计/构建软件是如此复杂! 我是一个快速学习者,但仍然是一个新手,所以请耐心等待。 是的,我已经搜索了我的问题的答案,但似乎没有类似问题的答案。

我有一个实验,有8个条件, 每个条件需要显示1个图像,从相似图像的文件夹中随机选择。 每个试验都需要不同(因此每个参与者都有不同的条件)并且每个条件的选定图像都不同。

因此; 条件 - 图像 A - 1到140 B - 1到80 等。

记录数据不是问题,因为这可以手工完成,但我只需要从预定义的组中随机选择图像。

我曾尝试使用代码随机化并随机播放订单,但无处可去。 请帮忙, 汤姆

2 个答案:

答案 0 :(得分:1)

要生成检索文件夹img_folder中随机图像的路径,这并不太难。您可以使用img_path_array = os.listdir('.../img_folder')。使用0(导入len(img_path_array)使用此函数)随机生成random_index = randrange(len(img_path_array))random之间的整数,并通过调用img_path_array[random_index]获取对随机文件网址的访问权限。

答案 1 :(得分:1)

您有两件事要做:将8个事物的池的顺序随机化几次,并确保不会多次选择任何排列。

我首先要指出,希望你的参与者少于factorial(8),因为这是唯一安排的最大数量。

这是一种蛮力方法,可以生成所有输入列表(images)的可能排列,然后将其洗牌;然后,您可以采取保证唯一的第一个 n 安排。

import itertools
import random

#images is a list of your images
orderings = list(itertools.permutations(images))
random.shuffle(orderings)
#now just take top n elements of orderings

现在我再次指出,当你有8个条件时这很好; 8!只有40320,这可以留在记忆中。对于任何大于10个条件的东西,你都会想要采用更复杂的方法。