如果我们有n个步骤并且我们一次可以上升1步或2步,则步数和爬升方式之间存在斐波纳契关系.IF和ONLY,如果我们不计算2 + 1和1 + 2不同.
但是,这不再是这种情况,并且必须添加我们添加第三个选项,采取3个步骤.我该怎么做呢?
是)我有的:
1 step = 1 way
2 steps = 2 ways: 1+1, 2
3 steps = 4 ways: 1+1+1, 2+1, 1+2, 3
Run Code Online (Sandbox Code Playgroud)
我不知道从哪里可以找到n楼梯的路数
我得到7为n = 4和14得到n = 5我通过做它之前的所有组合的总和得到14 + 7 + 4 + 2 + 1.所以n步的方式= n-1种方式+ n-2种方式+ .... 1种方式假设我保留了所有的值.DYNAMIC编程.1 2和3步将是基本情况是正确的?
到目前为止,这是我的代码:
def mod_div(a, b, n):
if gcd(b,n) != 1:
return 'Undefined'
for x in range(1, n):
if b*x%n == a%n:
return x
Run Code Online (Sandbox Code Playgroud)
这段代码接受我制作的函数gcd()并返回gcd,然后我用它来计算逆.我搜索了这些问题,但似乎没有人给我正确答案.
我的问题是:当我执行div_mod(3,2,7)时,代码返回5,就像它应该的那样.但是,当我为大数字(例如n> 10000)执行此操作时,解决方案计算需要很长时间,因为通过n的迭代来找到正确的数字.
我试着查看其他问题,在他们的答案中,他们都有类似的东西,但是如果gcd!= 1,他们都会返回x%n,而不是在n中使用i,这对我没有帮助没有给出正确的答案.
例如.如果我使用a = 12,b = 3和n = 11它应该返回4,但我发现除了我的所有函数都返回1.
我想知道是否有一种更有效的方法来使用eulids扩展定理而不是测试每个n,并希望一个有效.
我不断收到此错误:
类型 View 中的方法 setOnClickListener(View.OnClickListener) 不适用于参数 (new OnClickListener(){})
代码:
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
Button new_claim_button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
new_claim_button = (Button) this.findViewById(R.id.button1);
new_claim_button.setOnClickListener(new OnClickListener() {
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
请忽略功能。它没有太大作用,但我需要弄清楚是什么导致了错误,然后才能继续。