यह 2-डी ग्रिड में 100 रैंडम नंबर प्रिंट करने के लिए कोड है।

[[random.randint(1,25) for i in range(10)] for j in range(10)]

मैं यादृच्छिक संख्याओं को इस प्रकार कैसे मुद्रित करूं कि यादृच्छिक रूप से मुद्रित 100 संख्याओं में से केवल 25 का मान 0 से अधिक होगा? शेष सभी 75 संख्याएँ ग्रिड की यादृच्छिक स्थिति में 0 होनी चाहिए।

मेरा मतलब यही था। उदाहरण के लिए, एक 5 * 5 तालिका पर विचार करें जहां केवल 12 संख्याओं को 0 से अधिक होने की अनुमति है। शेष सभी (13) संख्याएं 0 होनी चाहिए। संख्याओं को यादृच्छिक रूप से और यादृच्छिक स्थिति में उत्पन्न किया जाना चाहिए।

[[ 1, 0, 7, 0, 0],
 [5, 9 , 0 , 0 , 2]
 [3, 0 , 0 , 6, 0]
 [11, 7, 0 , 3, 0]
 [0, 0, 3,  9, 0]]
2
user8261552 29 मार्च 2018, 00:33

2 जवाब

import random

source_numbers = [0] * 75 + [random.randint(1, 25) for i in range(25)]
random.shuffle(source_numbers)
grid = []
for i in range(10):
    grid = grid + [source_numbers[i * 10 : (i + 1) * 10]]
0
Joseph Petroske 28 मार्च 2018, 21:48

यहां कुछ भी नया आयात किए बिना या फेरबदल का उपयोग किए बिना इसे कैसे करें:

import random

indexesOfZeros = []
for i in range(76):
    while True:
        num = random.randint(0,100)
        if num not in indexesOfZeros: 
            indexesOfZeros.append(num)
            break

vals = [random.randint(1,25) if i not in indexesOfZeros else 0 for i in range(100)]
grid = [vals[((x*10)-10):(x*10)] for x in range(1,11)]

print(grid)
1
Zak Stucke 28 मार्च 2018, 21:56