Petitverse
ゲストさん (
ログイン
)
ログイン
コミュニティ内検索
コミュニティ一覧
Petitverse ご利用ガイド
Petitverse からのおしらせ
プチコン 非公式コミュニティ
トピック
PERIOD.DOT
◆WR0bRCjR7slG
2018/1/6 1:12
コンテスト
[コードゴルフ]fizzbizzの変則版
仕様:
ある自然数N(!=0)があったとして、
Nを3で割り切れるならFIZZを、
5で割りきれるならBIZZを、
両方で割りきれるならFiZZ BiZZを(ここ注意!!!!!iは小文字れふ!!!!!)
どれにも当てはまらないならN自体を
入力された値までコンマ区切りで出力する
なお、このコードゴルフはLOADダイアログを開いたときに左下に表示されている数値(要はUTF-8でのバイト数)が小さい方がより短いと定義します。
また、今回のプログラムではコンソールを使ったもののみが対象となります。
(いづれ機会があったならグラフィック版もやりますから許してちょんまげ太郎ガール)
*書き忘れたことがあったら追記します
コメント
なぎ
2018/1/6 19:09 ネタバレ
◆2vQDAT5B8579
サイズは140です(*‘ω‘ *)
このコメントはネタバレを含んでいます。
このコメントをひらく
はる
2018/1/6 19:53 ネタバレ
◆75Vh4SY8TdKS
Fizz Buzzの間違いでは?とか、
自然数は元々!=0では?とか思ってしまいました。
日本語読むのは下手なので、仕様の意味がよくわかりませんでした。
なので、なぎさんのものと似たような仕様にしました。
ですが、仕様を見るとiは大文字のようなので、大文字にしました。
サイズは92です。
公̶開̶キ̶ー̶【̶E̶K̶4̶N̶X̶D̶Q̶6̶】̶
ルールの変更があったので公開停止し、
それに合わせたものを公開しました。
↓共感数がバグっているようです。(本来の共感数は5または6)
このコメントはネタバレを含んでいます。
このコメントをひらく
PERIOD.DOT
2018/1/7 0:42
◆WR0bRCjR7slG
大丈夫です!私は日本語読みもダメだし書きもダメだしそろばんもダメですから!()
本題: ご指摘ありがとうございます。FizzBuzzの件はタイプミスです。自然数については数学のくせが出てしまったみたいなので気にしないでください。あとお詫びですがNが3で割りきれるときのIは大文字で5でも大文字ですが両方だと小文字という問題で作ってたので先に投稿されたお二方はもう一度それに沿ってゴルフしていただけないでしょうか。誤解を招いてしまってすみません。
はる
2018/1/7 7:57
◆75Vh4SY8TdKS
15で割り切れる:FiZZBuZZ
3で割り切れる:FIZZ
5で割り切れる:BUZZ
ということですか?
なぎ
2018/1/7 10:45
◆2vQDAT5B8579
コードゴルフってよくわかってないのですが、他の人のコードを見たりまねしたりそこら辺はどうなってるのでしょうか?わたしははるさんのコードをみてしまったのですが新たな短縮法を見つけない限りはるさんのコードより短くならないと思います(*‘ω‘ *)
Ryou Tanpo
2018/1/7 11:42
◆AI5iRr9FjmkJ
INPUT N:FOR I=1TO N:A=!(I MOD 3)B=!(I MOD 5)?("F"+"Ii"[B]+"ZZ")*A+("B"+"Ii"[A]+"ZZ")*B;",";:NEXT
あーもう!! 短くなんない!
(文字数=96) ファイルに保存していないがサイズは最後の改行入れて多分 97 だと思う
素直にはるさんの IF 文で良かった…
Ryou Tanpo
2018/1/7 11:46
◆AI5iRr9FjmkJ
あと個人的にはファイルサイズじゃなくて文字数の方が良いかと
PRINT LEN(LOAD("TXT:ファイル名",FALSE))
はる
2018/1/7 19:51
◆75Vh4SY8TdKS
Ryou Tanpoさんのやり方をそのままやったらNが表示されなかったので、
自分なりに改良したものを本気で作りましたが、
104byteでした。
>FizzBuzzの件はタイプミスです。自然数については数学のくせが出てしまったみたいなので気にしないでください。あとお詫びですがNが3で割りきれるときのIは大文字で5でも大文字ですが両方だと小文字という問題で作ってたので先に投稿されたお二方はもう一度それに沿ってゴルフしていただけないでしょうか。
もう一度それに沿ってゴルフしました。
サイズは95です。
公̶開̶キ̶ー̶【̶Q̶K̶V̶E̶B̶4̶N̶3̶Q̶】̶
公開停止しました。
しんいち
2018/1/7 21:19 ネタバレ
◆lHy.hAWXbthn
仕様:
自然数Nを入力とし、1〜Nまで1ずつカウントアップした時に、そのカウントアップした数が3で割り切れる場合はFIZZ、5で割り切れる場合はBIZZ、但し3と5両方で割り切れる場合はFiZZ BiZZ(iは小文字、間にスペースあり)を出力。3でも5でも割り切れない場合はカウントアップした数をそのまま出力。出力の際、,(カンマ)で区切る。
という仕様で作ってみました。
画面左上が本命で、119文字でした。
このコメントはネタバレを含んでいます。
このコメントをひらく
おちゃめ
2018/1/7 23:17 ネタバレ
◆jH1opV6FnGyx
冒頭の仕様(3で割れる→FIZZを表示、5で割れるBIZZを表示、両方で割れる→FiZZ BiZZを表示、両方とも割れない→そのまま数字を表示、「,」で区切る)で作ってみました。
INPUT N:FOR I=1TO N:A=I MOD 3>0B=I MOD 5>0?STR$(I)*A*B+"FIZZ"*!A*B+"BIZZ"*A*!B+"FiZZ BiZZ"*!A*!B+",";:NEXT
行末の改行コード込みで107文字です。
このコメントはネタバレを含んでいます。
このコメントをひらく
しんいち
2018/1/8 0:01 ネタバレ
◆lHy.hAWXbthn
フラグの詰めがあまかった(2個で良かったのか)。
それにしても、文字数少ない方が必ずしもファイルサイズ小さいって訳では無いんですね。文字コード小さい方がサイズ小さいとか?SmileBASICの予約語なら文字数の割りにサイズ小さくなるとか?う〜ん、謎だ(@_@)
このコメントはネタバレを含んでいます。
このコメントをひらく
はる
2018/1/8 7:28 ネタバレ
◆75Vh4SY8TdKS
↑
そうですね。
自分のは、
サイズ:95
文字数:132
なので内部で圧縮されているのだと思います。
ちなみに自分のプログラムは、圧縮されるかもと思い、
なるべく小さい文字コードの文字を使用しています。
例:空白→タブ、変数はAから順に使う
また、スクリーンショットをよく見てもらうと分かると思いますが、
最後の改行を無くすことで1文字分減らしています。
自分が、
"Ryou Tanpoさんのやり方をそのままやったらNが表示されなかったので、
自分なりに改良したものを本気で作りましたが、
104byteでした。"
と言ったものとしんいちさんのプログラムがそっくりだったので、
自分がまだ公開していないプログラムを見られたのかと思い、
びっくりしました。
このコメントはネタバレを含んでいます。
このコメントをひらく
しんいち
2018/1/8 16:51 ネタバレ
◆lHy.hAWXbthn
>はるさん
はるさんの投稿みて(ダウンロードして)から投稿しました。見た目よりファイルサイズ小さいなぁと気になりまして。
あれから文字コード小さいのに置き換えたり、文字コード数合計を測ったり、色々試してみたけどファイルサイズ変わらなかった。SmileBASICの予約語がカギっぽい。
そして文字数自体も少なくできないか色々考えてみたけど、おちゃめさんの107文字より少なくできなかった。あれが限界かな。
このコメントはネタバレを含んでいます。
このコメントをひらく
はる
2018/1/8 18:09 ネタバレ
◆75Vh4SY8TdKS
おちゃめさんのやり方を真似ました。
また、最後にカンマがついているのが嫌だったので、
最後にカンマがつかないようにしました。
ですが、そのせいで7byte増えてしまいました。
サイズ
最後カンマ有り:91
最後カンマ無し:98
最後カンマ無しを公開します。
公̶開̶キ̶ー̶【̶C̶R̶7̶Q̶W̶3̶D̶4̶】̶
公開停止しました。
このコメントはネタバレを含んでいます。
このコメントをひらく
しんいち
2018/1/8 19:38 ネタバレ
◆lHy.hAWXbthn
>はるさん
更にファイルサイズ小さくなりましたね。やっぱり文字コード関係してるようですね。ちなみにカンマ無しは1文字短くできますよ。カンマの出力部をプリントの先頭に持っていくと...
文字コード、試しに全ての文字に+&HFEE0して半角用の文字コードに変換してみたらファイルサイズ大きくなりました。そして実行できなくなりました^^;
このコメントはネタバレを含んでいます。
このコメントをひらく
はる
2018/1/8 20:01 ネタバレ
◆75Vh4SY8TdKS
↑それをやったら何故か1byte増えてしまいました。
なので特に進歩はありません。
サイズ:98
公開キー【CD7NH3D4】
このコメントはネタバレを含んでいます。
このコメントをひらく
おちゃめ
2018/1/9 1:05 ネタバレ
◆jH1opV6FnGyx
はるさんへ
(A!=B)を(A>B)に変更すればさらに1文字短縮できますね。
このコメントはネタバレを含んでいます。
このコメントをひらく
はる
2018/1/9 18:24 ネタバレ
◆75Vh4SY8TdKS
↑
ありがとうございます。
1byte短縮できました。
なんかだんだん1つのプログラムを、
皆で少しずつ短くしていっている感じになっていますね。
サイズ:97
公開キー【LD7383JJ】
このコメントはネタバレを含んでいます。
このコメントをひらく
Ryou Tanpo
2018/1/9 21:49 ネタバレ
◆AI5iRr9FjmkJ
やばい、すでに指摘のとおり上で投稿したやつ FIZZ でも BIZZ でも FiZZBiZZ でもないときに数字そのものを表示するとこ忘れている! 失礼しました
このコメントはネタバレを含んでいます。
このコメントをひらく
コメントを書く
こちらは「プチコン3号」「プチコンBIG」など、
プチコンシリーズ
に関する話題を扱った
コミュニティです
プチコンシリーズにまったく関係ない書き込みはご遠慮下さい。削除の対象となります
こちらにはその他のゲームや雑談のコミュニティはなく、作る予定もありません (ひとりで管理できないため)。ごめんなさい
ユーザー登録なしで書き込みができます
秘密の合い言葉は成りすましの防止 (
トリップ機能
)、書き込みの編集時の本人認証に使用します
秘密の合い言葉に他人に推測されやすい言葉、他サービスと同じパスワードは入力しないでください。
書き込むと、投稿時に入力したお名前と秘密の暗号が記憶され、ログイン状態になります
normal
happy
like
surprized
frustrated
puzzled
画像
ネタバレ
投稿する
-
WEB PATIO
-