1
是否有可能抽取一千個項目直至剩下一個項目,如果有的話需要多少個抽取循環?通過抽取,我的意思是刪除只有十分之一,並留下其餘的,例如,第一個週期:1000 - 900(刪除第十:100) 第二週期:900 - 810(刪除第十:90)DECIMATION LOGIC
是否有可能抽取一千個項目直至剩下一個項目,如果有的話需要多少個抽取循環?通過抽取,我的意思是刪除只有十分之一,並留下其餘的,例如,第一個週期:1000 - 900(刪除第十:100) 第二週期:900 - 810(刪除第十:90)DECIMATION LOGIC
這取決於您使用的數字類型。從輸出
class Main {
public static void main(String[] args) {
int i = 0;
double val = 1000;
while (val > 1) {
val -= val/10;
i++;
System.out.println("val = " + val + " in iteration " + i);
}
}
}
摘錄: 如果使用浮點數,你最終會達到一個值小於1
(不完全雖然,如下面的java程序的輸出顯示)
val = 900.0 in iteration 1
val = 810.0 in iteration 2
val = 729.0 in iteration 3
...
val = 1.0611166119964726 in iteration 65
val = 0.9550049507968253 in iteration 66
如果使用整數類型,將不會達到1
,因爲只要val == 9
,它將不會變小,因爲除法結果爲0
。我添加了一個檢查來捕獲該條件以防止無限循環。
讓我們一起來看看:
class Main {
public static void main(String[] args) {
int i = 0;
int val = 1000;
while (val > 1) {
int subtract = val/10;
if (subtract == 0) {
System.out.println("subtracted value is 0 for value " + val + " at iteration " + i);
break;
}
val -= subtract;
i++;
System.out.println("val = " + val + " in iteration " + i);
}
}
}
輸出:
val = 900 in iteration 1
val = 810 in iteration 2
...
val = 10 in iteration 49
val = 9 in iteration 50
value 9 repeats at iteration 50
也許問,在[MathOverflow(https://mathoverflow.net/) – jhhoff02
我懷疑他們會告訴我,現在我已經發布在這裏 –
@ jhhoff02請注意,這個問題可能是[MathOverflow](https://mathoverflow.net/)的主題。 [MathOverflow](https://mathoverflow.net/)僅用於研究級數學問題。詳情請參閱[他們的幫助中心](https://mathoverflow.net/help/on-topic)。 – Pang