小编tba*_*tba的帖子

BBP算法所需的工作精度?

我想在低内存环境中计算Pi的第n位数.因为我没有可用的小数,所以Python中这个仅整数的BBP算法是一个很好的起点.我只需要一次计算一位Pi.如何确定我可以设置的最低值D,即"工作精度的位数"?

D = 4给了我许多正确的数字,但是一些数字会被一个数字关闭.例如,计算精度为4的数字393给出了0xafda,我从中提取数字0xa.但是,正确的数字是0xb.

无论我设置多高D,似乎测试足够数量的数字会找到公式返回不正确值的数字.

当数字"接近"另一个时,我已经尝试提高精度,例如0x3fff或0x1000,但是找不到任何好的"关闭"定义; 例如,在数字计算9798给我0X Ç DE6,这是不是很接近0xd000,但正确的数字是0xd中.

任何人都可以帮我弄清楚使用这种算法计算给定数字需要多少工作精度?

谢谢,

编辑
供参考:

precision (D)   first wrong digit
-------------   ------------------
3               27
4               161
5               733
6               4329
7               21139
8+              ???

请注意,我一次计算一位数,例如:


for i in range(1,n):
    D = 3 # or whatever precision I'm testing
    digit = pi(i) # extracts most significant digit from integer-only BBP result
    if( digit != HARDCODED_PI[i] ):
        print("non matching digit #%d, got %x instead of %x" % …
Run Code Online (Sandbox Code Playgroud)

python algorithm math precision pi

7
推荐指数
1
解决办法
1576
查看次数

Python数据结构,用于高效添加,删除和random.choice

我正在寻找一个内置的Python数据结构,它可以add包含一个新元素,remove一个现有元素,并选择一个随机元素,所有这些都比O(n)时间好.

我希望set可以做到这一点,但AFAIK,从Python集中选择随机元素的唯一方法是random.choice(list(my_set)),花费O(n)时间.

我更倾向于使用内置于Python的解决方案,因为我需要高效且易于部署.不幸的是,Python似乎没有内置的树数据类型.

python data-structures

7
推荐指数
1
解决办法
2339
查看次数

通用scala函数,其输入是变量arity的函数

我想定义一个f带另一个函数的函数g.我们需要g采取n双打(对于一些固定的n)并返回双.函数调用f(g)应该返回特定的值n.

例如,f(Math.max) = 2由于Math.sin具有类型(Double, Double) => Double,f(Math.sin) = 1因为Math.sin具有类型Double => Double.

如何f使用Scala泛型定义?

我尝试了几种形式但没有成功.例如:

def f[A <: Product](g: Product => Double) = {...}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为我们无法n在编译时提取值,并且不能约束A仅包含Double值.

generics scala

7
推荐指数
2
解决办法
975
查看次数

导出GraphPlot时保留工具提示

我有一个非常大,密集,标记的图形,我用GraphPlot可视化.我想用Tooltip显示顶点标签,但必须将它们分发给没有Mathematica的人.遗憾的是,导出为PDF时会删除工具提示.

我接下来尝试导出到HTML.工具提示会被保留,但是当我的图表转换为.gif时,它太小而无法看到.有没有办法在导出到HTML时指定图像的大小?

或者,任何人都可以帮我弄清楚如何在保留工具提示的同时导出到不同的格式?

谢谢!

html wolfram-mathematica export tooltip

6
推荐指数
1
解决办法
459
查看次数

Haskell`sequence`函数返回的类型与预期的略有不同

我是Haskell的新手并且正在玩一些代码.我对以下GHCI会话感到困惑:

*Main> :l golden_cross_sample.hs
*Main> :t stateProcessors
stateProcessors :: [State GoldenCrossState String]
*Main> :t sequence
sequence :: Monad m => [m a] -> m [a]
*Main> let res1 = (sequence stateProcessors)
*Main> :t res1
res1 :: StateT GoldenCrossState Identity [String]
Run Code Online (Sandbox Code Playgroud)

从类型签名sequence,我预计res1有类型State GoldenCrossState [String].为什么不呢?

haskell

6
推荐指数
1
解决办法
107
查看次数

这个Haskell unicode变量名有什么问题?

这段代码怎么了?

Prelude> let x? = "abc"
<interactive>:10:6: lexical error at character '\7488'
Run Code Online (Sandbox Code Playgroud)

根据我对Haskell 2010报告的阅读,任何大写或小写的Unicode字母都应该在变量名的末尾有效.是否?字符(修饰符字母大写字母T),没有资格作为一个大写的Unicode信?

是否有更好的角色来表示向量的转置?因为我正在评估一个密集的数学公式,所以我想保持简洁.

我正在运行GHC 7.8.3.

unicode haskell

6
推荐指数
2
解决办法
409
查看次数

iPhone + JSON +反射

我正在用JSON编写一个iphone应用程序,并试图将JSON字符串转换为对象(NOT Dictionaries或Arrays).

在Java中,感谢Reflection,我可以轻松地将JSON转换为javabean实例,如下所示:

import net.sf.json.JSONObject;
class MyBean {
    private String property;
    public String getProperty() { return property; }
    public void setProperty(String property) { this.property=property; }
}

// turn JSON string into a MyBean instance
String str = "{\"property\":\"some value\"}";  
JSONObject jsonObject = (JSONObject) JSONSerializer.toJSON( str );
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.setRootClass( MyBean.class );
MyBean instance = (MyBean) JSONSerializer.toJava( jsonObject, jsonConfig );
Run Code Online (Sandbox Code Playgroud)

我想知道这是否可能在objective-c中.我目前正在使用 JSON框架,但如果有必要,我愿意切换.

谢谢,

iphone reflection cocoa json objective-c

5
推荐指数
1
解决办法
4777
查看次数

在移动网站上播放 YouTube 视频,无需重定向到 YouTube 应用

我正在创建一个移动网站,并希望显示一个小的(88 像素 x 50 像素)YouTube 缩略图,单击该缩略图后,将全屏播放视频并将它们返回到网页。它应该适用于 iOS 和 Android。

我的第一种方法是使用<a href="http://youtube.com/watch?v=oHg5SJYRHA0>...</a>. 但是,在 iOS 上,用户被重定向到 YouTube 应用程序,他们必须手动导航回 Safari。

接下来,我尝试嵌入一个小的 iframe 播放器

<iframe id="ytplayer" type="text/html" src="http://www.youtube.com/embed/T0WepLbWyq0?autoplay=1&controls=0&modestbranding=1&showinfo=0&rel=0" frameborder="0" allowfullscreen width=88 height=50></iframe>
Run Code Online (Sandbox Code Playgroud)

这会在 iOS 上正确弹出一个带有“完成”按钮的全屏视频,将用户带回 Safari 页面。但是,生成的缩略图由一个大的红色“播放”按钮支配。

有没有办法隐藏嵌入视频上的红色播放按钮?

或者是否有另一种方法可以在网页上嵌入一个小的 YouTube 缩略图,允许用户在查看完成后返回到该页面?

目前,我正在考虑 a) 尝试使用允许点击通过的覆盖层隐藏丑陋的红色播放按钮,或者 b) 尝试获取指向 YouTube 视频文件的直接链接,因为直接链接到视频文件允许用户完成后返回浏览器。然而,这些黑客看起来既复杂又脆弱。有没有更好的办法?

谢谢!

youtube mobile-safari youtube-api mobile-website ios

5
推荐指数
0
解决办法
2469
查看次数

将Scala与一组子类型相交

为什么这个函数不能编译?

case class MyType(n: Int)
def intersection(s1: Set[MyType], s2: Set[_ <: MyType]) =
  (s1 & s2)
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

错误:类型不匹配; 找到:设置[_ $ 1]其中类型_ $ 1 <:MyType required:scala.collection.GenSet [MyType]注意:_ $ 1 <:MyType,但是特性GenSet在类型A中是不变的.您可能希望研究一个通配符类型作为_ <: MyType.(SLS 3.2.10)(w&r)

是否有一种简单的方法可以"提升"第二个参数来键入Set [MyType]而不使用asInstanceOf?

generics scala

5
推荐指数
1
解决办法
1070
查看次数

UISearchDisplayController的全屏背景拦截了iOS 7中的触摸事件

我有一个UITableview不占用整个屏幕(截图).在iOS 6中一切正常.但在iOS 7中,当用户搜索时,搜索结果表占用整个视图(屏幕截图).

为了解决这个问题,我尝试按照本答案中的说明手动设置框架.外观现在是正确的(屏幕截图),但现在显示搜索结果表时,左上角的"<"按钮不会收到点击事件.

似乎searchResultsTableView正在添加一个拦截触摸事件的全屏背景视图.为了证明这一点,我将此代码添加到didShowSearchResultsTableView:

   controller.searchResultsTableView.superview.backgroundColor = [UIColor blueColor];`
Run Code Online (Sandbox Code Playgroud)

这个截图证实了我的假设.

如何修复此问题以允许"<"按钮接收点击事件?我想避免修改,controller.searchResultsTableView.superview以便我的更改不会在iOS的未来版本中中断.

iOS 7中的哪些变化导致这种行为开始发生?

uitableview uisearchdisplaycontroller ios ios7

5
推荐指数
1
解决办法
1443
查看次数