R:如何设置所有变量都不同的条件?a=b=c=d=e=f=G
一个简化的问题是,我想找到一个赋值,使得R:如何设置所有变量都不同的条件?a=b=c=d=e=f=G,r,R,一个简化的问题是,我想找到一个赋值,使得DEFG/ABC=9其中A、B、C、D、E、F、G都不同 我怎么写 a!=b!=c!=d!=e!=f!=g" 在R 我的尝试: for(a in 1:9){ for(b in 1:9){ for(c in 1:9){ for(d in 1:9){ for(e in 1:9){ for(f in 1:9){ for(g in 1:9){ if(((a+10*b+100*c)/(d+e*10+f*10
DEFG/ABC=9
其中A、B、C、D、E、F、G都不同
我怎么写
a!=b!=c!=d!=e!=f!=g"
在R
我的尝试:
for(a in 1:9){
for(b in 1:9){
for(c in 1:9){
for(d in 1:9){
for(e in 1:9){
for(f in 1:9){
for(g in 1:9){
if(((a+10*b+100*c)/(d+e*10+f*100+g*1000))==9 && a!=b!=c!=d!=e!=f!=g)
print(c(a,b,c,d,e,f,g))
#error: unexpected '!=' in:
提前感谢每对变量都需要形成它们自己的条件,它们需要通过&
(用于矢量化)或&
## Parens added for clarity, but not needed
(a != b) & (b != c) & (a != c)
但是,看起来您需要的是整数,或者至少是实数,在这种情况下,您可以使用
vars <- c(a, b, c, d, e, f, g)
any(vars != mean(vars))
# Since any one of the value being different from the group average
# indicates that they are all different
每对变量都需要形成它们自己的条件,它们需要通过&
(对于矢量化)或&
## Parens added for clarity, but not needed
(a != b) & (b != c) & (a != c)
但是,看起来您需要的是整数,或者至少是实数,在这种情况下,您可以使用
vars <- c(a, b, c, d, e, f, g)
any(vars != mean(vars))
# Since any one of the value being different from the group average
# indicates that they are all different
也许:
a可能:
a试试:
但一个三位数除以四位数怎么可能等于9呢?(此处未使用0)
以下代码用于生成这样的4位和3位数字:
> ss = sample(0:9, 7)
> while(TRUE){
+ num1 = (ss[4]+10*ss[3]+100*ss[2]+1000*ss[1])
+ num2 = (ss[7]+10*ss[6]+100*ss[5])
+ if((num1/num2) == 9 ) cat('\nFound: ',num1,' and ',num2)
+ ss = sample(0:9, 7)
+ }
Found: 8523 and 947
Found: 8253 and 917
Found: 6489 and 721
Found: 4761 and 529
Found: 5481 and 609
Found: 4608 and 512
Found: 6489 and 721
Found: 3789 and 421
Found: 2781 and 309
Found: 2781 and 309
Found: 5742 and 638
Found: 8613 and 957
Found: 3762 and 418
Found: 5742 and 638
Found: 3762 and 418
Found: 8523 and 947
Found: 8523 and 947
Found: 5823 and 647
Found: 8253 and 917
Found: 1854 and 206
Found: 3762 and 418
Found: 7254 and 806
Found: 7326 and 814
...
尝试:
但一个三位数除以四位数怎么可能等于9呢?(此处未使用0)
以下代码用于生成这样的4位和3位数字:
> ss = sample(0:9, 7)
> while(TRUE){
+ num1 = (ss[4]+10*ss[3]+100*ss[2]+1000*ss[1])
+ num2 = (ss[7]+10*ss[6]+100*ss[5])
+ if((num1/num2) == 9 ) cat('\nFound: ',num1,' and ',num2)
+ ss = sample(0:9, 7)
+ }
Found: 8523 and 947
Found: 8253 and 917
Found: 6489 and 721
Found: 4761 and 529
Found: 5481 and 609
Found: 4608 and 512
Found: 6489 and 721
Found: 3789 and 421
Found: 2781 and 309
Found: 2781 and 309
Found: 5742 and 638
Found: 8613 and 957
Found: 3762 and 418
Found: 5742 and 638
Found: 3762 and 418
Found: 8523 and 947
Found: 8523 and 947
Found: 5823 and 647
Found: 8253 and 917
Found: 1854 and 206
Found: 3762 and 418
Found: 7254 and 806
Found: 7326 and 814
...
如果所有值都是唯一的,则返回TRUE
如果所有值都是唯一的,则返回TRUE
。if(length(unique(1:9))==9)TRUE
@rawr-smart。应该已经考虑过了。any(复制的(你的_向量))
会告诉你向量中是否有任何重复项。@RicardoSaporta我认为OP需要所有内容都不同,对吗if(length(unique(c(1:8,8))==9)TRUE
一个三位数除以四位数怎么可能等于9?(此处未使用0)。如果(长度(唯一(1:9))==9)为真
@rawr-smart。应该已经考虑过了。any(复制的(你的_向量))
会告诉你向量中是否有任何重复项。@RicardoSaporta我认为OP需要所有内容都不同,对吗if(length(unique(c(1:8,8))==9)TRUE
一个三位数除以四位数怎么可能等于9?(此处未使用0)。我认为您的逻辑不太正确。似乎他们想确保没有任何重复的。您的正在检查它们是否完全相同。@Dason,您可能是对的。从a中看不太清楚=b=c
我需要它们是唯一的。我不知道我是怎么表达的直到现在才明白。也谢谢你。:)我认为你的逻辑不太正确。似乎他们想确保没有任何重复的。您的正在检查它们是否完全相同。@Dason,您可能是对的。从a中看不太清楚=b=c
我需要它们是唯一的。我不知道我是怎么表达的直到现在才明白。也谢谢你。:)
> ss = sample(0:9, 7)
> while(TRUE){
+ num1 = (ss[4]+10*ss[3]+100*ss[2]+1000*ss[1])
+ num2 = (ss[7]+10*ss[6]+100*ss[5])
+ if((num1/num2) == 9 ) cat('\nFound: ',num1,' and ',num2)
+ ss = sample(0:9, 7)
+ }
Found: 8523 and 947
Found: 8253 and 917
Found: 6489 and 721
Found: 4761 and 529
Found: 5481 and 609
Found: 4608 and 512
Found: 6489 and 721
Found: 3789 and 421
Found: 2781 and 309
Found: 2781 and 309
Found: 5742 and 638
Found: 8613 and 957
Found: 3762 and 418
Found: 5742 and 638
Found: 3762 and 418
Found: 8523 and 947
Found: 8523 and 947
Found: 5823 and 647
Found: 8253 and 917
Found: 1854 and 206
Found: 3762 and 418
Found: 7254 and 806
Found: 7326 and 814
...
!anyDuplicated(c(a, b, c, d, e, f, g))