public static ArrayList<IntPoint> getCircleLineIntersectionPoint(IntPoint pointA, IntPoint pointB, IntPoint center, int radius) {
// returns a list of intersection points between a line which passes through given points,
// pointA and pointB, and a circle described by given radius and center coordinate
double disc, A, B, C, slope, c;
double x1, x2, y1, y2;
IntPoint point1, point2;
ArrayList<IntPoint> intersections = new ArrayList<IntPoint>();
try{
slope = Util.calculateSlope(pointA, pointB);
}catch (UndefinedSlopeException e){
C = Math.pow(center.y, 2) + Math.pow(pointB.x, 2) - 2 * pointB.x …Run Code Online (Sandbox Code Playgroud) 我试图熟悉Go,所以试图实现一些搜索功能,但查看容器类型的文档,内置类型都没有实现一个contains方法.我错过了什么,如果不是我如何测试会员资格?我是否必须实现自己的方法,或者我必须遍历所有元素.如果是这样的话,在容器类型中省略这种基本方法背后的理由是什么?
有没有办法让Go编译器在我的系统上默认使用int64?我正在64位机器上为项目Euler编写代码.代码共享的可能性很小,因此不必担心在32位机器上运行它.
任何人都知道racket/base语言中包含的内容.我希望将racket/base命名空间定义与R7RS草案进行比较,以便直接了解Racket与Scheme的不同之处.
我一直在使用埃拉托色尼的筛经历素数生成Python和人们吹捧为一个相对较快的选项,例如那些在少数人的解决方案 的答案的一个问题关于Python优化素数代都没有直接的和我在这里简单的实现与效率相媲美.我的实现如下
def sieve_for_primes_to(n):
size = n//2
sieve = [1]*size
limit = int(n**0.5)
for i in range(1,limit):
if sieve[i]:
val = 2*i+1
tmp = ((size-1) - i)//val
sieve[i+val::val] = [0]*tmp
return sieve
print [2] + [i*2+1 for i, v in enumerate(sieve_for_primes_to(10000000)) if v and i>0]
Run Code Online (Sandbox Code Playgroud)
定时执行返回
python -m timeit -n10 -s "import euler" "euler.sieve_for_primes_to(1000000)"
10 loops, best of 3: 19.5 msec per loop
Run Code Online (Sandbox Code Playgroud)
虽然下面给出了上述链接问题的答案中描述的方法,该方法是python菜谱中最快的
import itertools
def erat2( ):
D = { }
yield 2
for q in itertools.islice(itertools.count(3), …Run Code Online (Sandbox Code Playgroud) 有没有人知道在一个范围内的数字上嵌套循环的惯用方法是什么?在Racket/Scheme中?在Python中我们有:
for i in range(numb1):
for j in range(numb2):
Run Code Online (Sandbox Code Playgroud)
Racket/Scheme中的等价物是什么?
我在文件project_euler.scm的第11行得到一个ERROR:源代码中的空应用程序:()每当我使用chibi-scheme v 0.5.3运行下面这段代码时,但是当我使用Dr Racket时它运行正常.有谁知道为什么会这样?
#! /usr/bin/env chibi-scheme
(define (sum-of-amicable-pairs n)
(let ((sums (list->vector (map (lambda (i)
(reduce + 0
(filter (lambda (j) (= (remainder i j) 0))
(iota (+ 1 (quotient i 2)) 1 1))))
(iota n 0 1)))))
(let loop ((len (vector-length sums))
(res-list '())
(i 0))
(cond
((= i len) (reduce + 0 res-list))
((and (< (vector-ref sums i) n)
(or (> (vector-ref sums i) i) (< (vector-ref sums i) i))
(= (vector-ref sums (vector-ref sums i)) i)) …Run Code Online (Sandbox Code Playgroud) 我在python中得到了问题21的解决方案,它给出了正确的答案.我尝试了别人的java代码,我得到10000和100000的相同答案,但是当尝试1000000时,我的代码返回的解决方案与java代码返回的其他两个解决方案不同,即使返回的所有三个解决方案都是相同的测试值10000和1000000和50000.任何人有任何想法?
我的Python代码
def amicable_pairs(n):
"""returns sum of all amicable pairs under n. See project euler for
definition of an amicable pair"""
div_sum = [0]*n
amicable_pairs_set = [0]*n
for i in range(1, n):
for j in range(i*2, n, i):
div_sum[j] += i
#for i in range(1, n):
# div_sum[i] = sum([j + i/j for j in range(2, int(math.sqrt(i)) + 1) if i % j == 0 and i != i/j])
# div_sum[i] = div_sum[i] + 1
#print div_sum
for j in …Run Code Online (Sandbox Code Playgroud) 我正在使用 go http 客户端发出 get 请求,并且客户端已使用 cookiejar 初始化,但响应 cookie 数组为空。有谁知道我做错了什么?
jar, err := cookiejar.New(nil)
if err != nil {
log.Fatal(err)
}
s.http_client = &http.Client{Jar: jar}
resp, _ := s.http_client.Get(s.url)
Run Code Online (Sandbox Code Playgroud)
fmt.Println(resp.Cookies())尽管我可以看到 Firefox 中返回的 cookies,但返回一个空数组。