コミュニティアイコン プチコン 非公式コミュニティ トピック

アバター
say ◆1nbKtD/tFu04
2020/5/27 18:20
大会
問題
4桁の数値がある
各桁には1,2,3,4のいずれかの数字が入る
各桁に同じ数字が入ることがないパターンを全て示せ

なお、3桁で1,2,3のいずれかの数字が入るもの とした場合、
123、132、213、231、312、321
となる

コメント

アバター
やきはた 2020/5/29 17:42 ◆pmVfuH0n4Kcn
1111〜4444まで数字iをループしてiを文字列にしてソートして”1234”になったものだけを抽出するとか?
アバター
Na 2020/5/29 18:43 ◆QoELVrBXBQCI
1111〜4444までループすると3333回ループすることになるので少し時間がかかりますね。
3号とか4は動作が速いのであまり気になりませんが、プチコンmkIIで試したところFOR I=1111 TO 4444:NEXTを実行するだけで3フレームもかかりました。

といいつつ私のプログラムも2フレームかかったんですけどね。
アバター
SatoshiMcCloud 2020/5/29 20:04 ◆Z1qfV11i63Jr
その方式なら、さらに工夫して
for i=1234 to 4321 step 9
にすればループ回数が1/9で見つけられるはずです。
アバター
こういち 2020/5/30 18:35 ◆ou0jbJnEJ0Kb
やきはたさんの方法、数字の種類をnとしたときの計算量がO(n^2log(n)10^n)に見えるから不思議だな…
結局n個の数字を並べ替えるときの組み合わせはn!通りだからどう足掻いてもn!に比例した時間はかかるはずなんだけど…(これはトラップ牧場で、十進数だと数字が10種類しかないのでそう見えるだけ)
アバター
say 2020/5/31 6:47 ◆1nbKtD/tFu04
ループ数を24回で済ます方法ってないんかなぁ…?
再帰でできそうな感じがするんだけど、パターンが掴めないからなんとも難しい
アバター
GRS 2020/5/31 17:32 ◆yVrf9Z5Kq57E
最速なら
? 1234
? 1243
  :
と、記述ですが石を投げられそうなので・・・。

1234の入れ替え限定なら24回ループで計算できます。

VAR KAI=1*2*3*4
DIM N[4],ANS[KAI]
N[0]=1
N[1]=2
N[2]=3
N[3]=4
VAR POS=0

FOR J=0 TO 3
 FOR I=0 TO 5
  ? N[0];N[1];N[2];N[3]
  ANS[J*6+I]=N[0]*1000+N[1]*100+N[2]*10+N[3] '検算用
  SWAP N[POS],N[POS+1]
  POS=(POS+1) MOD 2
 NEXT
 SWAP N[3],N[J]
NEXT

'検算
?"------------"
SORT 0,KAI,ANS
FOR I=0 TO KAI-1
 ?FORMAT$("%2D %4D",I+1,ANS[I])
NEXT

汎用性のないプログラムですが、8ビット時代マシン語秘術の応用です。
アバター
さすらいの名無し 2020/5/31 18:42 ◆LWMA5UzCJb3e
SWAPっていう命令を初めて知った()
アバター
Na 2020/5/31 21:23 ◆QoELVrBXBQCI
4進数とか使えますかね?
各桁が必ず0〜3になります(表示するときに1足せばいい)
さらに4進数の1桁は2進数の2桁なのでビット演算が使えそう
アバター
ツララ 2020/6/15 10:11 ◆ArUdBYOYME1V
ランダムで抽選して、まだ出てない組み合わせを規定の数に達するまで列挙するって方法も
結果をリアルタイムで見る人の存在を考えれば、それはそれで長所あると思うけどなぁ。
予測できない面白さと言うか。
処理の速さだけしか評価しない人ってつまんなさそう。
アバター
say 2020/6/15 15:20 ◆1nbKtD/tFu04
ほしけんさん
このゴミものすごい迷惑なんでなんとかしてください
アバター
ほしけん 2020/7/8 18:12 ◆BJ4kbE35MkgI
sayさん、どうしてほしいのでしょうか?
いくら書き込みがご自身にとって迷惑、迷惑に感じても、人に対して「ゴミ」と称するほうが管理人としては対処の優先度が高いように思いました
ツララさんの書き込みがコミュニティを疲弊させているのはわかります
しかし、Miiverseでは、ツララさんがBANされることはありませんでしたが、人を指して「ゴミ」と呼ぶほうが削除対象となります
アバター
say 2020/7/8 21:17 ◆1nbKtD/tFu04
うん?
ゴミを「ゴミ」と表現するのは間違いですか?
あのゴミは「人」なのですか?

先も見てない
状況も理解できない
コードも書けない
自省もできない
何も考えてない
先日アク禁したアレと何ら変わらんと思うんですが

とりあえず日本語みたいな文字列を書いていれば問題ない と?
アバター
ugly777 2020/7/8 22:09 ◆B7lOIJDWuOqi

ポルターガイストかな?
アバター
Na 2020/7/8 23:03 ◆QoELVrBXBQCI
(削除済)
アバター
SatoshiMcCloud 2020/7/9 8:27 ◆Z1qfV11i63Jr
↑"真実"と"事実"を誤解していませんか?
刑法上の名誉棄損罪は"事実"を摘示した場合に適用されます。この場合の事実とは、具体的な事柄で検証可能性があることを言います。
相手をゴミ呼ばわりすることは事実の摘示ではないので、名誉棄損罪には当たりません。
アバター
ugly777 2020/7/9 9:20 ◆B7lOIJDWuOqi

では、侮辱罪には当たりますか?(訊く人を間違えているような気が…)
アバター
こういち 2020/7/28 12:48 ◆.Id/aHiU36hu
トピックの問題。階乗進数というものを使えばスマートに求まるらしいので、報告しておきます。

コメントを書く

  • こちらは「プチコン3号」「プチコンBIG」など、プチコンシリーズに関する話題を扱ったコミュニティです
  • プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
  • こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
  • ユーザー登録なしで書き込みができます
  • 秘密の合い言葉は成りすましの防止 (トリップ機能)、書き込みの編集時の本人認証に使用します
  • 秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
  • 書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります

- WEB PATIO -