激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Linux|Centos|Ubuntu|系統進程|Fedora|注冊表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服務器之家 - 服務器系統 - Linux - 用 Linux 命令玩一個有趣的數學游戲

用 Linux 命令玩一個有趣的數學游戲

2021-05-04 23:31Linux中國Jim Hall Linux

像許多人一樣,我在大流行期間看了不少新的電視節目。我最近發現了一個英國的游戲節目,叫做 Countdown,參賽者在其中玩兩種游戲:一種是 單詞 游戲,他們試圖從雜亂的字母中找出最長的單詞;另一種是 數字 游戲,他們從隨機

用 Linux 命令玩一個有趣的數學游戲

在家玩流行的英國游戲節目 “Countdown” 中的數字游戲。

像許多人一樣,我在大流行期間看了不少新的電視節目。我最近發現了一個英國的游戲節目,叫做 Countdown,參賽者在其中玩兩種游戲:一種是 單詞 游戲,他們試圖從雜亂的字母中找出最長的單詞;另一種是 數字 游戲,他們從隨機選擇的數字中計算出一個目標數字。因為我喜歡數學,我發現自己被數字游戲所吸引。

數字游戲可以為你的下一個家庭游戲之夜增添樂趣,所以我想分享我自己的一個游戲變體。你以一組隨機數字開始,分為 1 到 10 的“小”數字和 15、20、25,以此類推,直到 100 的“大”數字。你從大數字和小數字中挑選六個數字的任何組合。

接下來,你生成一個 200 到 999 之間的隨機“目標”數字。然后用你的六個數字進行簡單的算術運算,嘗試用每個“小”和“大”數字計算出目標數字,但使用不能超過一次。如果你能準確地計算出目標數字,你就能得到最高分,如果距離目標數字 10 以內就得到較低的分數。

例如,如果你的隨機數是 75、100、2、3、4 和 1,而你的目標數是 505,你可以說 2+3=5,5×100=500,4+1=5,以及 5+500=505?;蛘吒苯拥兀?code>(2+3)×100 + 4 + 1 = 505。

命令行中隨機化列表

 

我發現在家里玩這個游戲的最好方法是從 1 到 10 的池子里抽出四個“小”數字,從 15 到 100 的 5 的倍數中抽出兩個“大”數字。你可以使用 Linux 命令行來為你創建這些隨機數。

讓我們從“小”數字開始。我希望這些數字在 1 到 10 的范圍內。你可以使用 Linux 的 seq 命令生成一個數字序列。你可以用幾種不同的方式運行 seq,但最簡單的形式是提供序列的起始和結束數字。要生成一個從 1 到 10 的列表,你可以運行這個命令:

  1. $ seq 1 10
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9. 8
  10. 9
  11. 10

為了隨機化這個列表,你可以使用 Linux 的 shuf(“shuffle”,打亂)命令。shuf 將隨機化你給它的東西的順序,通常是一個文件。例如,如果你把 seq 命令的輸出發送到 shuf 命令,你會收到一個 1 到 10 之間的隨機數字列表:

  1. $ seq 1 10 | shuf
  2. 3
  3. 6
  4. 8
  5. 10
  6. 7
  7. 4
  8. 5
  9. 2
  10. 1
  11. 9

要從 1 到 10 的列表中只選擇四個隨機數,你可以將輸出發送到 head 命令,它將打印出輸入的前幾行。使用 -4 選項來指定 head 只打印前四行:

  1. $ seq 1 10 | shuf | head -4
  2. 6
  3. 1
  4. 8
  5. 4

注意,這個列表與前面的例子不同,因為 shuf 每次都會生成一個隨機順序。

現在你可以采取下一步措施來生成“大”數字的隨機列表。第一步是生成一個可能的數字列表,從 15 開始,以 5 為單位遞增,直到達到 100。你可以用 Linux 的 seq 命令生成這個列表。為了使每個數字以 5 為單位遞增,在 seq 命令中插入另一個選項來表示 步進

  1. $ seq 15 5 100
  2. 15
  3. 20
  4. 25
  5. 30
  6. 35
  7. 40
  8. 45
  9. 50
  10. 55
  11. 60
  12. 65
  13. 70
  14. 75
  15. 80
  16. 85
  17. 90
  18. 95
  19. 100

就像以前一樣,你可以隨機化這個列表,選擇兩個“大”數字:

  1. $ seq 15 5 100 | shuf | head -2
  2. 75
  3. 40

用 Bash 生成一個隨機數

 

我想你可以用類似的方法從 200 到 999 的范圍內選擇游戲的目標數字。但是生成單個隨機數的最簡單的方案是直接在 Bash 中使用 RANDOM 變量。當你引用這個內置變量時,Bash 會生成一個大的隨機數。要把它放到 200 到 999 的范圍內,你需要先把隨機數放到 0 到 799 的范圍內,然后加上 200。

要把隨機數放到從 0 開始的特定范圍內,你可以使用模數算術運算符。模數計算的是兩個數字相除后的 余數。如果我用 801 除以 800,結果是 1,余數是 1(模數是 1)。800 除以 800 的結果是 1,余數是 0(模數是 0)。而用 799 除以 800 的結果是 0,余數是 799(模數是 799)。

Bash 通過 $(()) 結構支持算術展開。在雙括號之間,Bash 將對你提供的數值進行算術運算。要計算 801 除以 800 的模數,然后加上 200,你可以輸入:

  1. $ echo $(( 801 % 800 + 200 ))
  2. 201

通過這個操作,你可以計算出一個 200 到 999 之間的隨機目標數:

  1. $ echo $(( RANDOM % 800 + 200 ))
  2. 673

你可能想知道為什么我在 Bash 語句中使用 RANDOM 而不是 $RANDOM。在算術擴展中, Bash 會自動擴展雙括號內的任何變量. 你不需要在 $RANDOM 變量上的 $ 來引用該變量的值, 因為 Bash 會幫你做這件事。

玩數字游戲

 

讓我們把所有這些放在一起,玩玩數字游戲。產生兩個隨機的“大”數字, 四個隨機的“小”數值,以及目標值:

  1. $ seq 15 5 100 | shuf | head -2
  2. 75
  3. 100
  4. $ seq 1 10 | shuf | head -4
  5. 4
  6. 3
  7. 10
  8. 2
  9. $ echo $(( RANDOM % 800 + 200 ))
  10. 868

我的數字是 75、100、43、10 和 2,而我的目標數字是 868。

如果我用每個“小”和“大”數字做這些算術運算,并不超過一次,我就能接近目標數字了:

  1. 10×75 = 750
  2. 750+100 = 850
  3.  
  4. 然后:
  5.  
  6. 4×3 = 12
  7. 850+12 = 862
  8. 862+2 = 864

只相差 4 了,不錯!但我發現這樣可以用每個隨機數不超過一次來計算出準確的數字:

  1. 4×2 = 8
  2. 8×100 = 800
  3.  
  4. 然后:
  5.  
  6. 75-10+3 = 68
  7. 800+68 = 868

或者我可以做 這些 計算來準確地得到目標數字。這只用了六個隨機數中的五個:

  1. 4×3 = 12
  2. 75+12 = 87
  3.  
  4. 然后:
  5.  
  6. 87×10 = 870
  7. 870-2 = 868

試一試 Countdown 數字游戲。

原文地址:https://linux.cn/article-13358-1.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久99国产精品免费网站 | 日本一级黄色大片 | xxxx hd video 69 | 久久久一区二区三区视频 | 黄色美女免费 | 国产精品区一区二区三区 | 92看片淫黄大片欧美看国产片 | 久久99久久99免费视频 | 午夜在线观看视频网站 | 羞羞的动漫在线观看 | 污污黄 | 久久久久久中文字幕 | 国产亚洲精品久久久久婷婷瑜伽 | 欧美性a视频 | 中国毛片在线观看 | 一本色道久久综合狠狠躁篇适合什么人看 | 一级电影免费看 | 91精品国产91久久久久久蜜臀 | 草莓福利视频在线观看 | 日韩欧美精品电影 | 亚洲成人久久精品 | 欧美a视频 | 51色视频| 在线看成人av| 神秘电影91 | va免费视频 | 欧美性猛交一区二区三区精品 | 中国漂亮护士一级a毛片 | 欧美一级黄 | 污黄视频在线播放 | 国产日韩大片 | 在线观看中文字幕av | teensexhd| 91短视频网址 | 99激情视频| 性色av一区二区三区四区 | 久久久久久中文字幕 | 曰本三级日本三级日本三级 | 国产午夜精品理论片a级探花 | 精品久久久久久久久久久久包黑料 | 少妇一级淫片免费放正片 |