R (a^2+b^2=c^2)

R (a^2+b^2=c^2),r,R,毕达哥拉斯三元组是a^2+b^2=c^2的三个正整数a、b和c。 需要使用R列出所有可能的三元组,其中a b和c小于1000,a

毕达哥拉斯三元组是a^2+b^2=c^2的三个正整数a、b和c。 需要使用R列出所有可能的三元组,其中a b和c小于1000,a
vals <- expand.grid(x=seq(1000), y=seq(1000))
subset(vals, x^2 + y^2.....)

不知道从这里到哪里去

为什么人们要投反对票?这是一个令人惊奇的故事question@AnthonyDamico:这看起来很像是一个为我解决家庭作业问题的问题,海报上没有任何努力的迹象。这个问题似乎离题了,因为这不是一个完全丢失的代码编写服务!到目前为止,我已经使用了expand.grid函数并对值进行了子集划分,但我无法将其组合在一起。您应该编辑您的问题,以包含您尝试过的代码。为什么x需要小于y。它们不能是“==”吗。要求z<1000难道还不够吗?试着画x和y。该死,这太漂亮了。我喜欢这个问题。还有数学,哈哈,那四行是什么?伙计,这太棒了。第一个是子集实际值,y==x*4/3,第二个是子集实际值,y==x*8/6,依此类推。。这些比率很容易通过头部实际值查看
# create a data.frame with all possible combos
vals <- expand.grid( x = 1:1000 , y = 1:1000 )

# calculate the z for each of these
vals$z <- sqrt( vals$x^2 + vals$y^2 )

# subset all possible combinations where z is an integer and x, y, z are <= 1000 and x < y and y < z
actuals <- subset( vals , z == round( z ) & ( x <= 1000 ) & ( y <= 1000 ) & ( z <= 1000 ) & ( x < y ) & ( y < z ) )

# answer
nrow( actuals )

# look at the first six records
head( actuals )

# plot x and y
plot( actuals$x , actuals$y )