据我所知,reduce函数有一个列表l和一个函数f.然后,它f在列表的前两个元素上调用函数f,然后使用下一个列表元素和前一个结果重复调用该函数.
所以,我定义了以下功能:
以下函数计算阶乘.
def fact(n):
if n == 0 or n == 1:
return 1
return fact(n-1) * n
def reduce_func(x,y):
return fact(x) * fact(y)
lst = [1, 3, 1]
print reduce(reduce_func, lst)
Run Code Online (Sandbox Code Playgroud)
现在,这不应该给我((1! * 3!) * 1!) = 6吗?但是,相反它给出了720.为什么720?它似乎也是一个因素6.但是,我需要理解为什么.
有人能解释为什么会发生这种情况并解决问题吗?
我基本上想要计算列表中所有条目的阶乘的乘积.备份计划是运行循环并计算它.但是,我更喜欢使用reduce.
我想在我的应用程序的多个页面中添加一个应用程序栏.因此,我将应用程序栏定义为应用程序资源,以便它可以被多个页面使用.现在,这些按钮的事件处理程序在App这里提到的类中http://msdn.microsoft.com/en-us/library/hh394043%28v=VS.92%29.aspx.但是,这些应用栏按钮基本上是重要页面的快捷方式.因此,单击按钮会将您带到相应的页面.但是,因为我正在定义事件处理程序App.xaml.cs,所以它不允许我导航.我理解这个的原因.但是,我不知道如何解决这个问题.
NavigationService.Navigate(new Uri("/Counting.xaml", UriKind.RelativeOrAbsolute));
Run Code Online (Sandbox Code Playgroud)
说"非静态字段,方法或属性System.Windows.Navigation.NavigationService.Navigate(System.Uri)"需要对象引用"