質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

90.50%

  • Python 3.x

    6419questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

リストに格納しないでソートするにはどの様な解決策があるでしょうか?

解決済

回答 3

投稿

  • 評価
  • クリップ 0
  • VIEW 146

import random
for i in range(10):
x = random.randint(500, 1000)
print('{0:4d}'.format(x))
というプログラムを修正して、プログラム上で実行結果を降順にソートしたいのです。

  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • LouiS0616

    2018/06/26 22:51

    なぜ『リストに格納しないで』という条件が付くのでしょうか。

    キャンセル

  • hayataka2049

    2018/06/26 22:52

    どうしてもリストは使っちゃダメですか? 「dictやsetにいれませう。あ、arrayもあるね」ってとんちはあり? なし? 単にxをlistに入れる方法がわからないのであれば、その方向でアドバイスすることもできますが

    キャンセル

  • キャンセル

回答 3

+1

前回以上の値が出たら出力するようにしたらどうでしょう。
結果における乱数の質は期待できないと思いますが。

import random
prev = 1000
#prev = 500 # 昇順
for i in range(10):
    while True:
        x = random.randint(500, 1000)
        if x <= prev or x == 500:
        #if x >= prev or x == 1000: # 昇順
            print('{0:4d}'.format(x))
            prev = x
            break

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

+1

from random import randint
print(*map('{0:4d}'.format, sorted(randint(500, 1000) for _ in range(10))), sep='\n')

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

checkベストアンサー

0

ス リ ー プ ソ ー ト

import random
import threading
import time

def f(ms):
    time.sleep(1-ms*(10**-3))  # 修正。1000以上は入ってこないと仮定
    print('{0:4d}'.format(ms))


for i in range(10):
    x = random.randint(500, 1000)
    threading.Thread(target=f, args=(x,)).start()

""" =>
 982
 962
 935
 928
 796
 650
 639
 510
 503
 501
"""

参考:
画期的(?)なソートアルゴリズム「Sleep Sort」:濃縮還元オレンジニュース|gihyo.jp … 技術評論社


質問の追記・修正依頼欄で進展があったらもう少し真面目な回答を書こうと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/26 23:09

    なんでBAにしたのか知らんですが、とりあえず見直したら降順ですらないからそれは直しますよ

    キャンセル

  • 2018/06/26 23:10

    とても分かりやすかったです。ありがとうございました。
    またほかにも回答してくださった方々、ありがとうございました。

    キャンセル

  • 2018/06/26 23:11

    こんなんでええんですか・・・

    キャンセル

  • 2018/06/26 23:13

    for文が1回回るのに1ms以上かかっちゃうと(普通の状況ならかからないと思うけど)正しく動く保証はないので、気をつけて

    キャンセル

  • 2018/06/26 23:21

    あと、実用的なパフォーマンスはありませんので、そういう用途には使わないでください
    もし「リストを使わないでソートする方法を競い合おう!」的な会合とか課題的なものに提出されるのでしたら、高確率でネタ被りすると思うので、他の方法を考えたほうが聡明です(とにかく何でも良いから出せば良いんだ、って状況なら止めないけど。私的にはあまり後味がよくない。あと、もしそういう状況なら、このページを他の人に見られるリスクも考えてくださいね)

    キャンセル

  • 2018/06/26 23:26

    いえ、大丈夫です。学校の練習問題を深く知りたく質問しました。
    長文の解答本当にありがとうございます。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 90.50%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    リストがソート可能かチェックするには?(jquery)

    特定のリストはソート可能かチェックするにはどうすればいいのでしょうか? if ($('#list').sortable())  このコードを使った場合は、リストが再びソート可能に

  • 解決済

    javascriptでテーブルソート

    javascriptでテーブルソートについて質問です。 こちらは動きだけで構いませんのでどなたかご教授お願いします。 1.<th class="***">を1回目タップすると、昇

  • 解決済

    JavaScript ランダムではない"じゃんけん"について

    プログラミング入門で JavaScriptのじゃんけんゲームをつくっております。 これまでコンピュータの出す手は、ランダム関数を利用してきました。 これをコンピュータが過去の戦

  • 解決済

    HTML5のCanvasについて

    現在Canvasを勉強しています 今作ろうとしているものが ランダムにカラーと座標とサイズを決めた円を50個描画する というこのなのですが一回しか描画できません どこを改善すればい

  • 解決済

    <input type="text">のvalueの値に他要素の文字列を挿入したい

    <input type="text">のvalueの値に、他要素の文字列を挿入したいです。 具体的には以下の通りです。 <input type="text" name="hoge

  • 受付中

    配列の使い方

    オブジェクト10個の中からランダムで一個出現させる方法はありますか? 配列を使うと予測したのですが、他のやりかたでも結構です。

  • 解決済

    jQueryのcss3「keyframe」がブラウザsafari(PC,iPhone)のみcssを取...

    実現しないことは、以下のソースでfirefox、chrome、IEでは問題なく動作するのですが、 safari(PC,iphone)ではcssの取得がされません。 原因が分

  • 解決済

    モンテカルロ法によるπの計算プログラム

    javascriptでモンテカルロ法によるπの値を計算するプログラムを組んでいます。 randomメソッドを使って写真のように計算しているのですが、nにどれだけ大きな値を入力して

同じタグがついた質問を見る

  • Python 3.x

    6419questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。