随机数

1. 排序--明明的随机数

1.1 描述

明明想在学校中请一些同学做一项问卷调查。为了实验的客观性,他先用计算机生成了n个1~1000之间的随机整数(n<=100),对于其中重复的数字,只保留一个,把其余相同的数去掉,不同的数对应着不同的学生学号。然后再把这些数从小到大排序,按照排好的顺序去找同学做调查。请你协助明明完成“去重”与“排序”的工作。

1.1.1 输入描述

第一行为1个正整数,表示所生成的随机数的个数n。第二行有n个用空格隔开的正整数,为所产生的随机数。

1.1.2 输出描述

第一行为1个正整m,表示不相同的随机数的个数。第二行为m个用空格隔开的正整数,为从小到大排好序的不相同的随机数。

1.1.3 输入样例

10
20 40 32 67 40 20 89 300 400 15

1.1.4输出样例

8
15 20 32 40 67 89 300 400

1.2 代码

1.2.1 go

    package main
import (
    "fmt"
    "strings"
    "strconv"
    "bufio"
    "os"
)

func main() {
    // please write your code here
    var numOfRandom int
    var strOfRandom string
    fmt.Scanln(&numOfRandom)
    //fmt.Scanln(&strOfRandom)
    inputReader := bufio.NewReader(os.Stdin)
    strOfRandom, _ = inputReader.ReadString('
')
    strOfRandom=strings.TrimSpace(strOfRandom)
    //fmt.Println(strOfRandom)
    strArrofRandom:=strings.Split(strOfRandom," ")
    if len(strArrofRandom)!=numOfRandom{
        //panic("123")
    }
    // fmt.Println(strArrofRandom)
    intArrofRandom:=make([]int,0)
    for _,v:=range strArrofRandom{
        if v==""{
            continue
        }
        //strings.TrimS(v)
        if val,err:=strconv.Atoi(v);err==nil{
            isExist:=false
            for _,vv:=range intArrofRandom{
                if val==vv{
                    isExist=true
                }
            }
            if !isExist{
                intArrofRandom=append(intArrofRandom,val)
            }
        }
    }
    
    for i:=0;i<len(intArrofRandom);i++{
        for j:=i+1;j<len(intArrofRandom);j++{
            if intArrofRandom[j]<intArrofRandom[i]{
                intArrofRandom[i],intArrofRandom[j]=intArrofRandom[j],intArrofRandom[i]
            }
        }
    }
    fmt.Println(len(intArrofRandom))
    for i,v:=range intArrofRandom{
        if i==len(intArrofRandom)-1{
            fmt.Print(v)
            break
        }
        fmt.Print(v," ")
    }
     //fmt.Println(strings.Join(intArrofRandom," "))
    
}

1.2.1 java

    import java.util.*;
public class RandomNumbers {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        //System.out.println("answer");
         Scanner scan = new Scanner(System.in);
            String line;
            int numOfRandom=-1;
            while (scan.hasNextLine()) {
                line = scan.nextLine().trim();
                // please write your code here
                if(numOfRandom==-1){
                    numOfRandom=Integer.parseInt(line);
                }else{
                    String[] arraryOfRandom=line.split("\s+");
                    List<String> listString=new LinkedList<String>();
                    for(String s:arraryOfRandom){
                        if(!listString.contains(s)){
                            listString.add(s);
                        }
                    }
                    String[] newarrofRandom=listString.toArray(new String[listString.size()]);
                    int[] newArrOfInt=new int[newarrofRandom.length];
                    System.out.println(newArrOfInt.length);
                    for(int i=0;i<newarrofRandom.length;i++){
                        newArrOfInt[i]=Integer.parseInt(newarrofRandom[i]);
                    }
                    Arrays.sort(newArrOfInt);
                    for(int s:newArrOfInt){
                        System.out.printf("%d ",s);
                    }
                    break;
                }
                // System.out.println("answer");
            }
            scan.close();
       
    }

}

1.2.1 python

import sys

if __name__=="__main__":
    numOfRandom=None
    for line in sys.stdin:
        # print(line) # please replace your code here
        newLine=line.strip()
        if numOfRandom==None:
            numOfRandom=int(newLine)
        else:
            numList=newLine.split(" ")
            numList=list(set(numList))
            if "" in numList:
                numList.remove("")
            newNumList=[]
            for v in numList:
                newNumList.append(int(v.strip()))
            newNumList.sort()
            out=" ".join(str(i) for i in newNumList)
            print(len(newNumList))
            print(out)
            #print("44 66")
            break     

1.2 总结

不同的语言,实现思路是不一样的;

原文地址:https://www.cnblogs.com/meiguhuaxian/p/14189530.html