我正在用Python对Einstein Solids进行仿真,如果您不知道那是什么,那么当将其笨拙地装箱和装球时,它相对简单,我需要在装箱的盒子中分配装球。一个以上的球,但显然一个盒子不能分成几个球。用户输入的球和盒子的数量不是常数。我是编码的新手,如果有人有很棒的想法,那么这个逻辑上的死胡同会让我丧命。
在上下文中,比方说我的代码,盒子是振荡器,球是能量。
我目前的逻辑途径是创建一个列表,其长度是盒子的数量,单个元素只是盒子的“顺序”,然后对这些球进行同样的操作,从而创建一个列表球的数量即长度。我当时的想法是只找到一个球落在一个盒子里的概率,并且基本上以每个概率而不是1/2的概率对每个盒子进行硬币翻转,但这并不能确保将每个给出的球都放进去一个盒子,所有这些都需要考虑。
Na=raw_input( "What is the amount of oscillators within object 1? (a positive integer, Na)")
Nb=raw_input( "What is the amount of oscillators within object 2? (a positive integer, Nb)")
N_tot=int((raw_input( "What is the total amount of oscillators within the system? (a positive integer that=Na+Nb)")))
NaList=[]
Na_calc=int(Na)
While Na_calc>0
NaList.append(Na_calc)
Na_calc=Na_calc-1
最终我希望模拟一堆不同的“球滴”,其中能量在振荡器之间分配,并对这些振荡器之间的相互作用进行更多分析,但是前面提到的将列表分配到列表的问题会解决最大的逻辑问题
谢谢..有一个很好的
答案 0 :(得分:0)
我觉得上面的示例可能不是您要问的问题,但是也许您可以使用列表推导来简化示例中的工作
na_list = [n for n in range(na_calc, 0, -1)]
不过,我觉得您的问题很可能使用zip之类的东西解决。 https://docs.python.org/3.7/library/functions.html#zip